设计模式比较总结

区分相似模式

策略和模板方法区别:

  • 模板方法侧重于定制局部部分, 通过继承
  • 策略侧重于定制完整流程,通过注入

策略和状态区别:

  • 策略侧重于从多个可选行为中选一个单次执行
  • 状态侧重于连续执行,并自动选择每次行为

建造者和工厂区别:

  • 工厂侧重创建不同类型对象
  • 建造者侧重多种参数创建同一类型

装饰器和代理区别:

  • 装饰器强调在已有原对象基础上功能增强,将已有对象传入
  • 代理强调控制,很多情况下代理可以内部创建真实对象,外界不知道真实对象由代理完全屏蔽