设计模式分类

所有模式都可以按其意图或目的进行分类。

1.1.1、按意图划分

意图 模式 特点
接口型模式 适配器模式、外观模式、组合模式、桥接模式 需要对一个类或一组类的方法进行定义或重定义的场景
职责型模式 单例模式、观察者模式、中介者模式、代理模式、职责链模式、享元模式 用于集中、加强以及限制普通对象责任的技术
构造型模式 建造者模式、工厂方法模式、抽象工厂模式、原型链模式、备忘录模式 让客户类不通过构造函数来创建对象
操作型模式 模板方法模式、状态模式、策略模式、命令模式、解释器模式 将操作分散,不同的类在实现同一个操作时采用不同的方式(即多态的灵活运用)
扩展型模式 装饰器模式、迭代器模式、访问者模式 主要用于扩展,装饰器(动态组合)、迭代器(顺序访问)、访问者(运行新定义操作)

1.1.2、按目的划分

设计模式按目的来划分可以分为三大类,分为创建型模式、结构型模式和行为型模式 3 种。

如果还需要分的更细,根据模式是主要用于类上还是主要用于对象上来分,又可分为类模式和对象模式两种。

img

1)按目的划分

意图 模式 特点
创建型模式 单例模式、原型模式、工厂方法模式(简单工厂模式)、抽象工厂模式、建造者模式 关注如何创建对象,将对象的创建与使用分离
结构型模式 代理模式、适配器模式、桥接模式、装饰器模式、外观模式、享元模式、组合模式 关注如何将对象和类按某种布局组装成更大的结构
行为型模式 模板方法模式、策略模式、命令模式、责任链模式、状态模式、观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式、解释器模式 关注类或对象之间的如何协同完成复杂的任务

2)按作用范围划分

类模式:工厂方法模式、模板方法模式、解释器模式、(类)适配器模式,适配器支持两种,还有一种是对象适配器模式。

对象模式:除了类模式,剩下的都是对象模式。