在上篇《架构设计》阐述了分层的一些理论。本书应该也是更一步阐述AWroks架构的理念。其中还有作者对之前写面向过程的程序的一些反思,由面向过程转向面向对象编程的思考。
三大特性都是基于“类”这个概念的。
封装:类是对一组对象共性的抽象,封装了属性和方法。
所谓封装,从字面意义上理解,即把一组关联的数据和函数圈起来,使圈外面的代码只能看见部分函数,数据则完全不可见(一般来讲,不建议圈外看见任何数据,数据的访问都应通过类提供的方法,不应走任何捷径)。
C 语言实现封装的一般做法为:
用结构体封装数据,再用函数操作结构体指针所封装的数据。对外.h文件只声明结构体(这里并不是将结构体整体声明,而是只声明名字)和函数,由于只是声明,没有初始化(初始化操作实质是放在了.c文件中)所以外界并不能操作结构体的数据(因为外界只知道这个名字而看不到结构体具体数据),只能通过.h声明的函数调用。
后面提到的如何定义结构体部分,其实是重点?采用程序员分配结构体空间和缓存空间的方法,相应的,就要有释放内存的操作。
C实现继承的一般做法:
在子类的头文件中,定义一个结构体,包含父类的对象。这样对这个结构体操作时,便以子类的名义进行,同时也可以调用父类的方法。
其中,又提到内联函数?到底什么是内联函数呢?
其实就是用一个inline的声明的函数,函数被调用的语句就被替换成了函数本身,进行了一个预处理。
内联函数在编译层面类似于宏替换。也就是说,程序执行过程中调用内联函数不需要入栈出栈,所以效率会提高。
C实现多态的一般做法:
在类的头文件中,以函数指针的方式定义一个类的方法,声明调用函数时通过形参方式,以内联函数的形式调实例化类的方法。这样就可以实现“不同 的对象使用完全相同的操作方法。
2>>4章,略过,作为一个过来人,这些可以以后再细化。主要是对面向对象思想的一些编程原则的叙述。2019-12-9
第5章 组件
将系统软件分解为一个个独立运行的组件,这是实现软件设计标准化的重要步骤。
下面的章节,实现了awtk下的界面接口。基本上得以代码为基础来看。
总结:
这本书其实也是基于AWTK及Aworks的编程思想,面向对象编程实现的阐述。对实际开发可以参考一部分,比较散,需要结合代码慢慢体会这些思想。