最近在看Python源码剖析,里边提到了一些关于对象的解释,有了一些灵感,初步从系统架构视角下,分层整理了一下对象的技术理解。
分层图解
面向对象特性
一般大家介绍对象特性时,主要关注的是应用层和语言层的对象特性,譬如封装、继承或者多态等。即:对象即包含了属性,也包含了方法,那么映射到最底层就是分配的内存中既有属性,也有代码。
往往是说这个语言支持哪些面向对象特性,说的是语言支持这些特性的定义和运行。如何在语言中进行定义,可以用这样的方式方法,来组织管理代码或者业务逻辑等。如何定义在不同的语言中有所不同,主要看语言的实现以及对应的虚拟机的实现。
面向对象有点
其中,封装、继承的特性首先最有利与业务层的表示、理解和记忆,这样的抽象方式、组织方式有利于构建更加复杂的逻辑,譬如一个对象往往做一方面事情,而一个业务逻辑需要由多个不同的角色(分工不同的对象)共同完成,这样便于单个开发人员或者开发人员团队,以一种易于理解、易于组织、易于知识传递的方式一起来完成更加复杂的系统。在应用层和定一层来看,对于一个业务抽象,封装在一起的另一个好处,需要的属性啊、方法啊什么的都在一起了,想调用,想修改时都可以方便的找到。