设计模式

参考资料:https://blog.csdn.net/ShuSheng0007/article/details/115980889

定义

  • 一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结
  • 从许多优秀的软件系统中总结出的成功的、能够实现可维护性复用的设计方案

目的

  • 可重用代码
  • 让代码更容易被他人理解
  • 保证代码可靠性

分类

根据目的分类

根据其目的(模式是用来做什么的)分三种:

  • 创建型(Creational)——主要用于创建对象。灵活应用
  • 结构型(Structural)——主要用于处理类或对象的关系。核心思想:包一层
  • 行为型(Behavioral)——主要用于描述对类或对象怎样交互和怎样分配职责(类和行为的分离)。核心思想:甩锅

根据范围分类

根据是处理类之间还是对象之间的关系,分两种。

类模式——处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
对象模式——处理对象间的关系,这些关系在运行时刻变化,更具动态性。

具体划分

范围/目的 创建型模式 结构型模式 行为型模式
类模式 工厂方法模式 (类)适配器模式 解释器模式模板方法模式
对象模式 抽象工厂模式、建造者模式、原型模式、单例模式 (对象)适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式 职责链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式