抽象化 (计算机科学)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关

  • 冷疗冷疗(cryotherapy)是降低组织的温度以达到治疗效果的方法。冷却可以减少组织血液量及减慢组织的新陈代谢,因此,可降低出血及发炎的情况。对于痉挛,肌肉挛缩有一定的效果。还有
  • 长春花碱硫酸长春碱(化学式:C46H60N4O13S)常温下是白色固体,可用作抗肿瘤药,用于治疗何杰金氏病和绒毛膜上皮癌,对淋巴肉瘤、急性白血病、乳腺癌等也有一定疗效。与微管黏合,抑制微管合成作
  • 土力学土壤力学是应用土壤物理学(英语:Soil physics)和工程力学方法来研究土的力学性质的一门学科。土壤力学的研究对象是与人类活动密切相关的土和土体,包括人工土体和自然土体,以及与
  • 平面偏振光偏振(polarization)指的是横波能够朝着不同方向振荡的性质。例如电磁波、引力波都会展示出偏振现象。纵波则不会展示出偏振现象,例如传播于气体或液体的声波,其只会朝着传播方向
  • 三甲双酮三甲双酮(Trimethadione)是
  • 托勒密十五世托勒密十五世·菲洛帕托尔·菲洛墨托尔·恺撒(希腊语:Πτολεμαίος ΙΕ' Φιλοπάτωρ Φιλομήτωρ Καίσαρ,拉丁化:Ptolemaíos XV Philopátōr P
  • 性别定型性别角色,相当于性别规范,是一种社会角色,包括人们基于一切生物性别与性别表达的感知或态度,而且被认为是适当、合宜或可接受的。性别角色通常集中在女性气质和男性气质的概念上
  • 朱莉·克里斯蒂朱莉·克里斯蒂(英语:Julie Christie,1940年4月14日-)是英国女演员,曾获奥斯卡金像奖、英国电影学院奖、金球奖、美国演员工会奖。她的代表作有:《Darling》、《你的样子》、《日瓦
  • 阿克斯布里奇 (马萨诸塞州)阿克斯布里奇(英语:Uxbridge)是美国马萨诸塞州乌斯特县的一个小镇,人口13,247,坐落在黑石河谷的中心。这里曾是美国工业化的发祥地,也是1756年美国殖民地时期第一个女性选民,Lydia
  • 各国捕捞与养殖水产品产量列表以下2005年渔业与水产养殖产品产量数据(单位:公吨),是由联合国粮农组织提供。