抽象化 (计算机科学)

✍ dations ◷ 2025-10-24 07:18:37 #计算机科学,数据管理,编程典范

在计算机科学中,抽象化(英语:Abstraction)是将数据与程序,以它的语义来呈现出它的外观,但是隐藏起它的实现细节。抽象化是用来减少程序的复杂度,使得程序员可以专注在处理少数重要的部分。一个电脑系统可以分割成几个抽象层(Abstraction layer),使得程序员可以将它们分开处理。

抽象就是把一个问题或模型,以不同规则或方法所得出的不同的解(求解方法和解本身即抽象层),这些不同的解可以组合并还原成问题或模型的本身。

抽象的意义是可以忽略不是求解过程中必需的解。例如要用计算机程序去模拟“人”,在描述了人的动作(饮食、思考、移动等)符合设计要求后(如可完整表达“人”在坐下时候的动作),其他“人”的细节(躯干、器官、细胞活动乃至人际关系)都可以忽略,以集中设计需要的功能,并减低程序的复杂度。

为了使抽象的成品(算法)不会出现问题,要注意抽象时是否漏掉重要特征。

在程序设计中,高级语言是对机器指令序列的抽象。高级语言的出现,使得程序的编写得以简化,极大提高了程序的编写效率。随着软件技术的发展,组件技术进一步提升了程序抽象的级别。

另一种可取的替代方法是设计一种语言机制,允许程序师在需要的时候构建自己的抽象方法。一个通用的机制是使用过程(procedure)。通过分离过程的定义和规则,编程语言包含了两种重要的抽象方法:参数化抽象(abstraction by parameterization)和规范化抽象(abstraction by specification)。其中:

参数化抽象是用参数替换数据特征来进行抽象。这样能够归纳出模块,从而使其可以用于更多的情况。例如,可以定义一个排序抽象,既能够实现对实数数组的排序,又能够实现对整型数组的排序,或者甚至对数组类型这类一般结构都有用。

规范化抽象是将运行细节(即模块如何实现)抽象为用户所需求的行为(即模块做什么)。这是从具体实现中抽象出模块,需要的仅仅是模块的实现能够符合我们所依赖的表述形式。每当将一个过程与一个注释(这个注释提供了充分的信息,是其他人不用看过程主体就能使用该过程)关系起来,我们就会使用规范化抽象。

程序设计中,抽象类别包括下列4类:

1:过程抽象:能够引入一些新的操作;

2:数据抽象:能够引入新的数据对象类型;

3:反复运算抽象:能够反复运算遍历在集合中的元素,而不必显示如何获得元素的细节;

4:类型层次:能够从多个单独的数据类型中抽象成几组相关的类型。

相关

  • DNA测序DNA测序(DNA sequencing,或译DNA定序)是指分析特定DNA片段的碱基序列,也就是腺嘌呤(A)、胸腺嘧啶(T)、胞嘧啶(C)与鸟嘌呤(G)的排列方式。快速的DNA测序方法的出现极大地推动了生物学和医
  • 生物神经网络生物神经网络(Biological Neural Networks)一般指生物的神经元、细胞、触点等组成的网络,用于产生生物的意识,帮助生物进行思考和行动。
  • 饱和脂肪酸脂肪酸(英语:Fatty acid)是一类羧酸化合物,由碳氢组成的烃类基团连结羧酸所构成。三个长链脂肪酸与甘油形成三酸甘油酯(Triacylglycerols),为脂肪的主要成分,归于脂类。饱和脂肪酸(Sa
  • bspan style=color:white;巴利阿里海/span/b巴利阿里海(加泰罗尼亚语:Mar Balear)又被称为伊比利海(Mar Ibérico)或加泰罗尼亚海(Catalan Sea)。是西地中海的一部分,位于伊比利半岛东岸与巴利阿里群岛之间的海域。西邻阿尔沃
  • 2005年选举2005年德国众议院选举在2005年9月18日进行,选出德国众议院。这次选举是在7月1日联邦议会未通过对总理格哈特·施罗德的信任案后提前举行的。基民盟/基社盟提名的安格拉·梅克
  • 性联遗传伴性遗传即遗传基因位于性染色体上的遗传现象。男性个体的X染色体一定是来源他的母亲,而他本人又一定是将其传给女儿,不会传给他的儿子;然而,女性个体的两条X染色体分别来源于她
  • 卡斯库拉语नेपाली尼泊尔 印度尼泊尔语属印度-雅利安语支,在尼泊尔、不丹、印度和缅甸的一些地区使用。是尼泊尔的官方语言。大概一半的尼泊尔人使用尼泊尔语作为其母语,其他尼泊
  • 乌干达总统乌干达总统是乌干达的国家元首。这个职位设立初期,实权仍在总理手上。受到君主主义政党卡巴卡耶卡党的影响,布干达国王穆特萨二世成为了乌干达第一任总统。1966年,米尔顿·奥博
  • 德国内阁德国内阁(德语:Bundeskabinett或Bundesregierung),为德意志联邦共和国的主要行政机构。
  • 转换波分析在地震学与地球物理学中,转换波分析(英语:Converted-wave Analysis)是指分析地震波波相转换的科学。当地震波入射到介质界面时,会同时产生反射横波、反射纵波、透射横波、透射纵