代码防尘指南

7/16/2021

# 什么是模式

模式 是在某情境下,针对某问题的某种解决方案。

  • 情境:某种经常不断出现的情况,比如:拥有一个对象的集合、想要拥有全局唯一的对象,对象在运行过程中改变他的行为
  • 问题:在某种情境下希望达到的目标,比如:走访每个对象,而不需要理会集合的实现
  • 解决方案:一个通用的设计,解决约束,达成目标

# 设计模式归类

# 创建型

涉及到将对象实例化,客户从所需要实例化的对象中解耦

  • 工厂方法模式
  • 抽象工厂模式
  • 单例模式

# 行为型

涉及到类和对象如何交互及分配职责

  • 模板方法
  • 策略模式
  • 状态模式
  • 命令模式
  • 迭代器模式

# 结构型

把类或对象组合到更大的结构中

  • 组合模式
  • 适配器模式
  • 装饰器模式
  • 外观模式
  • 代理模式

# 使用模式的注意事项

  • 总是使用满足需要的最简单解决方案,不管他用不用模式

# 给模式一个模板

  • 名称
  • 定义 (意图):简短描述模式作用
  • 动机:给出问题,以及问题场景
  • 适用性:模式可以应用的场合
  • 结构:提供图示
  • 参与者:该模式中涉及到的类和对象在模式中的责任和角色
  • 结果:使用此模式后的效果,好的&不好的
  • 实现:实现该模式时需要使用的技巧,以及可能的问题,示例代码
  • 已知应用:在真实系统中发现的模式的例子
  • 相关模式:描述此模式和其他模式的关系