抽象化 (计算机科学)

✍ dations ◷ 2025-11-26 19:52:33 #计算机科学,数据管理,编程典范

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

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

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

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

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

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

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

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

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

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

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

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

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

相关

  • 诺氟沙星诺氟沙星(Norfloxacin,又名Noroxin、Fulgram),别名:力醇罗、氟哌酸、淋克星。其化学名为1-乙基-6-氟-1,4-二氢-4-氧代-7-(1-哌嗪基)-3-喹啉羧酸。本品为第二代喹诺酮类抗菌药,会阻
  • 芽孢杆菌芽孢杆菌纲(学名:Bacilli)是厚壁菌门的一纲,包含有芽孢杆菌目和乳杆菌目两目,其下包含有芽孢杆菌属和其他如李斯特菌属等革兰氏阳性菌。医学导航:病菌细菌(分类)gr+f/gr+a(t)/gr-p(c/gr-o
  • 诉诸言论自由我有权发表意见(I'm entitled to my opinion; I have a right to my opinion)或诉诸言论自由是一种不相干的谬误,是在自己的主张被人反驳时,主张己方有发表意见的权利(或有言论自
  • 泰国府份面积列表泰国总共有75个府和一个直辖市(曼谷市)。
  • M777榴弹炮M777榴弹炮(英语:M777 howitzer)是一种155毫米牵引炮,取代M198榴弹炮(英语:M198 Howitzer)成为美国海军陆战队和美国陆军的现役武装,同时也获得加拿大,澳大利亚,沙特阿拉伯与印度的
  • 阿帕切语南德内语支,或称南阿萨巴斯卡语支(Southern Athabaskan languages)、“阿帕契语”(该词被当地土著人认为有贬义),是几种美洲印第安人的土著语合称。阿帕契语(下称南德内语言)几种北
  • 胖吉猫胖吉猫(英语:Pusheen)又称胖吉喵,是美国插画师克莱儿.贝尔顿(英语:Claire Belton)根据她领养的猫咪(现在与克莱儿(英语:Claire Belton)的父母生活在一起)所设计出的角色,是一只灰色大花猫,
  • 供给的价格弹性供给的价格弹性有时候也被简称为供给弹性。它表示价格变动1%引起供给量变动的程度。供给价格弹性系数同需求的价格弹性一样,也是由供给量变动的百分比与价格变动的百分比的比
  • 文艺复兴建筑文艺复兴建筑是在公元14世纪在意大利随着文艺复兴这个文化运动而诞生的建筑风格。基于对中世纪神权至上的批判和对人道主义的肯定,建筑师希望借助古典的比例来重新塑造理想中
  • 阿列克谢·阿利波夫阿列克谢·亚历山德罗维奇·阿利波夫(俄语:Алексей Александрович Алипов,1975年8月7日-),生于莫斯科,是一名俄罗斯男子射击运动员。他曾在2004年雅典奥