技术杂记
Posted wfrancow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术杂记相关的知识,希望对你有一定的参考价值。
2018年10月27日
六种程序设计思想(以C++为例)
1. 结构化思想
struct包裹数据,数据对应的操作函数单独定义声明。
2. 基于对象的思想
将数据和对应的操作函数进行组合(也可以理解为简单的封装,毕竟没有访问控制等安全措施)。
3. 面向对象的思想
引入类、this指针、封装、继承、多态等概念,形成有层次的结构。
4. 基于接口的思想
定义抽象的接口类,即类中仅实现相关接口声明,不进行实体定义。然后针对特殊情况,单独编写一个继承接口的新类。
5. 基于接口的思想的模板实现
和4类似,不过接口类是一个模板。
6. 面向方面的思想
和5类似,只不过针对每一种特殊情况,编写一个新的类,这个新的类通过接口类的模板入口塞进去,即接口类通过模板来继承每一种特殊类。
- 结构化思想实现的加法器,没有做到封装,也不能容纳变化点;
- 基于对象的方法进了一步,它所实现的加法器做到了封装,但没有容纳变化点;
- 面向对象方法所实现的加法器,则做到了上述两点;
- 基于接口的设计方法,则更进了一步,不仅实现了变化点的封装,还降低了代码的耦合度,提高了扩展性。
- 两种基于模板的加法器实现。它们与前面提到的几种方法孰优孰劣,则是仁者见仁智者见智了,不同的场景可能会有不同的答案。
参考资料
李林老师的《Linux高级编程》的PPT第一讲
以上是关于技术杂记的主要内容,如果未能解决你的问题,请参考以下文章