“抽象就是从众多事物中抽取出共同的,本质的特征”这是一个定义,但是定义本身什么用都没有。

与其说抽象是什么,不如说一下如何抽象,我们可以通过什么手段抽象:“隐藏什么,暴露什么,重新组织什么”,这就是的手段,而抽象本身也是为了让我们能更好操控,理解复杂系统,不需要去思考抽象是什么,只要思考它的功能,什么手段能实现它,即可

抽象的应用实例,一个是编程语言,一个是操作系统,这二者的发展历程几乎就是 一个抽象的应用史,先来讲一讲

操作系统:

晶体管层→逻辑门层→数字电路层→微架构层→指令集层→OS

这是计算机系统的抽象层次,这些层次都是依靠隐藏什么,暴露什么,如何重新组织构成的。

编程语言:

最开始的计算机依靠开关的拨动,0101机器语言直接去写,这是费劲的,人们将一些特定的0101组合在一起,以英文助记符归纳他们的作用,这就是汇编。

在这个阶段,就是一组抽象,隐藏了0101的书写,只把他们最终的效果暴露出来,并重新组织成更容易懂的功能。

汇编之后,慢慢变出了C,这依旧是一组抽象,把各个汇编封装,暴露一些功能,再重新,更人性化的组织它们,这样C语言就诞生了,python也是以此类推。

看似没有说到封装,但其实封装就是实现抽象的手段之一,把一些动作装在一起,这就是封装,上述内容可以让你有送理解的

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐