# 什么是模式
模式 是在某情境下,针对某问题的某种解决方案。
- 情境:某种经常不断出现的情况,比如:拥有一个对象的集合、想要拥有全局唯一的对象,对象在运行过程中改变他的行为
- 问题:在某种情境下希望达到的目标,比如:走访每个对象,而不需要理会集合的实现
- 解决方案:一个通用的设计,解决约束,达成目标
# 设计模式归类
# 创建型
涉及到将对象实例化,客户从所需要实例化的对象中解耦
- 工厂方法模式
- 抽象工厂模式
- 单例模式
# 行为型
涉及到类和对象如何交互及分配职责
- 模板方法
- 策略模式
- 状态模式
- 命令模式
- 迭代器模式
# 结构型
把类或对象组合到更大的结构中
- 组合模式
- 适配器模式
- 装饰器模式
- 外观模式
- 代理模式
# 使用模式的注意事项
- 总是使用满足需要的最简单解决方案,不管他用不用模式
# 给模式一个模板
- 名称
- 定义 (意图):简短描述模式作用
- 动机:给出问题,以及问题场景
- 适用性:模式可以应用的场合
- 结构:提供图示
- 参与者:该模式中涉及到的类和对象在模式中的责任和角色
- 结果:使用此模式后的效果,好的&不好的
- 实现:实现该模式时需要使用的技巧,以及可能的问题,示例代码
- 已知应用:在真实系统中发现的模式的例子
- 相关模式:描述此模式和其他模式的关系