~~~~~~~~
设计模式有两种分类方法,即根据模式的目的来分和根据模式的作用范围来分。
~~~~~~~~
一、根据目的来分
根据模式是用来完成什么工作来划分,这种方式可分为3种:
- 创建型模式
- 结构型模式
- 行为型模式
创建型模式
创建型模式用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”,GoF中提供了5种创建型模式:
- 工厂方法
- 抽象工厂
- 单例
- 原型
- 建造者
结构型模式
结构型模式描述如何将类或对象按某种布局组成更大的结构,GoF中提供了7种创建型模式:
- 代理
- 适配器
- 桥接
- 装饰
- 外观
- 享元
- 组合
行为型模式
行为型模式描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责。GoF中提供了11种行为型模式:
- 模板方法
- 策略
- 命令
- 职责链
- 状态
- 观察者
- 中介者
- 迭代器
- 访问者
- 备忘录
- 解释器
~~~~~~~~
二、根据作用范围来分
根据模式是主要用于类上还是主要用于对象上来分,这种方式可分为类模式和对象模式两种。
类模式
用于处理类与子类之间的关系,这些关系通过继承来建立,属于静态的,在编译时刻便确定下来了。
工厂方法、(类)适配器、模板方法、解释器属于该模式。
对象模式
用于处理对象之间的关系,这些关系可以通过组合或聚合来实现,在运行时刻是可以变化的,更具动态性。
除了以上4种,其它的都是对象模式。