按目的分类
创建型:与对象的产生相关
结构型:处理类或对象的组合
行为型:对象之间如何交互,怎样分配职责。
按范围分类
类模式:类之间的静态继承、编译时已经确定
对象模式:也用继承,但对象的类型在运行时
可以发生变化,通过接口/抽象基类实现。
* 结合上述两种标准,将设计模式划分为6类:
创建型类模式
将对象的创建工作延迟到子类
创建型对象模式
将对象的创建工作延迟到另一个对象中
结构型类模式
使用继承机制组合类
结构型对象模式
描述了对象的组装方式
行为型类模式
使用继承描述算法或控制流
行为型对象模式
对象之间如何协作来完成单个对象无法完成的任务
结构模式
适配器模式、桥梁模式、装饰模式、外观模式
组合模式、代理模式等
行为模式
模板方法模式、命令模式、观察者模式、策略
模式、状态模式、访问者模式、迭代器模式等
创建型模式
工厂方法、抽象工厂、单例模式