技术杂记(五)

2018年10月27日

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

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

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

猜你喜欢

转载自www.cnblogs.com/wFrancow/p/9863674.html
今日推荐