抽象化 (计算机科学)

✍ dations ◷ 2025-12-05 04:02:33 #计算机科学,数据管理,编程典范

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

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

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

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

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

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

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

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

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

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

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

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

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

相关

  • 卡洛·阿尔贝托卡洛·阿尔贝托(意大利语:Carlo Alberto Amedeo,1798年10月2日-1849年7月28日),本名卡洛·阿尔贝托·阿梅迪奥,萨丁尼亚-皮埃蒙特王国国王(1831~1849)。萨伏伊王朝旁系,卡洛·埃曼努埃莱
  • 圣捷尔吉阿尔伯特·纳扎波尔蒂·圣捷尔吉(匈牙利语:Nagyrápolti Szent-Györgyi Albert;1893年9月16日-1986年10月22日),匈牙利生理学家。他因“与生物燃烧过程有关的发现,特别是关于维生
  • 八齿鼠八齿鼠科(学名:Octodontidae)也作竖毛鼠科,是啮齿目豪猪亚目中的一科,分布于南美洲,包括以下几属:
  • 噬菌细胞吞噬细胞为一类防卫细胞,它们透过吞噬细菌、坏死细胞和凋亡细胞等有害物质来保卫有机体。其原文“Phagocytes”的前半部来自希腊语“phagein”(意为“食用、吞食”),后半部“-cy
  • 诉诸对立诉诸反对(argument by contradiction),是一种非形式谬误,是不断宣称与对方矛盾的主张,而不提出理据。网络上又俗称这样不断坚持自己观点的做法为“跳针”。
  • 罗姆苏丹国罗姆苏丹国(波斯语:سلجوقیان روم‎,现代土耳其语:Anadolu Selçuklu Devleti)为在安那托利亚的塞尔柱帝国延续政权,在1077年至1307年间统治安那托利亚内陆大部分区域,初
  • 宝来宝来温泉位于台湾高雄市六龟区宝来里,是荖浓溪支流宝来溪旁的一处温泉地。依地质分类,属于中央山脉板岩区的变质岩温泉。宝来温泉因莫拉克台风带来的八八水灾而受损严重。宝来
  • 环境保护署环境保护署可以指:
  • 吴英恺吴英恺(1910年5月8日-2003年11月13日),辽宁新民人,满族,医学教育家、心胸外科专家,中国科学院院士。毕业于圣路易斯华盛顿大学医学中心胸外科。1943年回国,担任重庆中央医院外科主任
  • 六氟磷酸六氟磷酸是一种化合物,化学式为H。由于六氟磷酸根(PF6-)的非配位性,它是一种强酸。已经得到的六水合物“结晶HPF6”显示,PF6-被包含在由水分子和质子组成的截角八面体中。核磁共