定义
- 模式:是在某情境下,针对某问题的某种解决方案
- 情境:应用某个模式的情况,是一种会不断出现的情况
- 问题:想在该情况下达到的目标或者约束
- 解决方案:一个通用的设计,来解决约束,达到目标
模式分类
按功能分
- 创建型:单例,抽象工厂,工厂方法
- 行为型:模板,迭代,命令,观察者,状态,策略
- 结构型:装饰者,代理,组合,适配器
分类的作用
- 帮助熟悉模式以及模式之间的关系
- 不是唯一的分类方式
- 为了方便记忆
用模式思考
- 尽可能保持简单
- 设计模式也会有后果
- 知道何时需要使用模式
- 重构的时候就是使用模式的时候
- 去掉不需要的模式
- 如果现在不需要,就别做
反模式
- 定义:如何采用一个不好的解决方案解决一个问题
- 作用:将反模式归档,可以在下次使用到时,分辨出不好的方案
Tips
- 设计模式应该是自然而然地出现在合适的地方
- 可以根据自己的需要进行适当的修改
- 所遇到的大多数模式都是现有模式的变体,并非新的模式