技术杂记

Posted wfrancow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术杂记相关的知识,希望对你有一定的参考价值。

2018年10月27日

六种程序设计思想(以C++为例)

1. 结构化思想
    struct包裹数据,数据对应的操作函数单独定义声明。
2. 基于对象的思想
    将数据和对应的操作函数进行组合(也可以理解为简单的封装,毕竟没有访问控制等安全措施)。
3. 面向对象的思想
    引入类、this指针、封装、继承、多态等概念,形成有层次的结构。
4. 基于接口的思想
    定义抽象的接口类,即类中仅实现相关接口声明,不进行实体定义。然后针对特殊情况,单独编写一个继承接口的新类。
5. 基于接口的思想的模板实现
    和4类似,不过接口类是一个模板。
6. 面向方面的思想
    和5类似,只不过针对每一种特殊情况,编写一个新的类,这个新的类通过接口类的模板入口塞进去,即接口类通过模板来继承每一种特殊类。
  • 结构化思想实现的加法器,没有做到封装,也不能容纳变化点;
  • 基于对象的方法进了一步,它所实现的加法器做到了封装,但没有容纳变化点;
  • 面向对象方法所实现的加法器,则做到了上述两点;
  • 基于接口的设计方法,则更进了一步,不仅实现了变化点的封装,还降低了代码的耦合度,提高了扩展性。
  • 两种基于模板的加法器实现。它们与前面提到的几种方法孰优孰劣,则是仁者见仁智者见智了,不同的场景可能会有不同的答案。

参考资料
李林老师的《Linux高级编程》的PPT第一讲


以上是关于技术杂记的主要内容,如果未能解决你的问题,请参考以下文章

技术杂记

技术杂记

技术杂记

ROP之linux_x64知识杂记

阅读rocketmq技术内幕杂记 - 设计

docker(杂记)