设计模式总结

前言

  在一个大型项目中,如果一开始没有注意到设计模式的问题,在后期的软件维护中,会因为需求以及重构花费很多的时间,所以,在这里,对C++的一些设计模式做些总结(根据网上资料以及个人理解,持续更新中....
  其实,设计模式本身是一个工具,设计模式的场景并不是单一化的,在实际应用中,一个模块可能会包含多个设计模式的思想。另外,大部分的设计模式的目的是在面向对象的基础上尽量消除继承的手段,也因此目前网上的很多资料是以Java语言为主。
  当然,C++也是支持面向对象的(很多学生似乎都是把C++当C来用),所以C++也可以谈谈设计模式。另外,目前其实有很多语言的新特性是包含部分设计模式思想的,所以在用到这些语言的时候,使用者不需要特意地考虑使用这些模式。
  好吧,下面开始进入正文!

设计模式总结

1. 设计模式六大原则

  (1) 开闭原则(Open Close Principle):对扩展开放对修改关闭
  (2) 里氏代换原则(Liskov Substitution Principle):父类出现的地方,子类也可出现
  (3) 依赖倒转原则(Dependence Inversion Principle):依赖抽象而不依赖具体
  (4) 接口隔离原则(Interface Segregation Principle):多个隔离的接口,比使用单个接口要好
  (5) 迪米特法则(最少知道原则)(Demeter Principle):最少知道原则。一个实体应当尽量少的与其他实体之间发生相互作用
  (6) 合成复用原则(Composite Reuse Principle):尽量使用合成/聚合的方式,而不是使用继承。

2. 设计模式分类

  目前已经完成了创建型模式,还在更新中

设计模式分类

4. 设计模式实例导航

  目前已经完成了创建型模式,还在更新中

  (a)创建型模式
    (1) 简单工厂模式
    (2) 抽象工厂模式
    (3) 单例模式
    (4) 建造者模式
    (5) 原型模式

  (b)结构型模式
    (1) 适配器模式
    (2) 装饰器模式
    (3) 代理模式
    (4) 外观模式
    (5) 桥接模式
    (6) 组合模式
    (7) 享元模式

  (c)行为型模式
    (1) 策略模式
    (2) 模板方法模式
    (3) 观察者模式
    (4) 迭代子模式
    (5) 责任链模式
    (6) 命令模式
    (7) 备忘录模式
    (8) 访问者模式
    (9) 状态模式
    (10) 中介者模式
    (11) 解释器模式

5. 下一篇

  下面会按照上面的设计模式分类,给出C++的具体实现方法以及自己的一些理解,上述的文章链接会不断更新,相关代码后续会更新到Github上面。

参考资料

[1] https://www.iteye.com/blog/smallbug-vip-2276470
[2] https://www.zhihu.com/question/23757906

posted @ 2020-06-27 16:48  临摹摆渡  阅读(160)  评论(0编辑  收藏  举报