设计模式
参考资料:https://blog.csdn.net/ShuSheng0007/article/details/115980889
定义
- 一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结
- 从许多优秀的软件系统中总结出的成功的、能够实现可维护性复用的设计方案
目的
- 可重用代码
- 让代码更容易被他人理解
- 保证代码可靠性
分类
根据目的分类
根据其目的(模式是用来做什么的)分三种:
- 创建型(Creational)——主要用于创建对象。灵活应用
- 结构型(Structural)——主要用于处理类或对象的关系。核心思想:包一层
- 行为型(Behavioral)——主要用于描述对类或对象怎样交互和怎样分配职责(类和行为的分离)。核心思想:甩锅
根据范围分类
根据是处理类之间还是对象之间的关系,分两种。
类模式——处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
对象模式——处理对象间的关系,这些关系在运行时刻变化,更具动态性。
具体划分
范围/目的 | 创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|---|
类模式 | 工厂方法模式 | (类)适配器模式 | 解释器模式模板方法模式 |
对象模式 | 抽象工厂模式、建造者模式、原型模式、单例模式 | (对象)适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式 | 职责链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式 |