1 创建型 vs 结构型

创建型设计模式:
用来解决对象创建问题 (封装复杂的创建过程,解耦对象的创建代码和使用代码)

结构型设计模式:
总结了一些类或对象组合在一起的经典结构 (用于解决特定应用场景的问题)

2 适配器 vs 桥接 vs 组合

  • 适配器模式:用于有相关性但不兼容的接口
  • 桥接模式:用于同等级的接口互相组合
  • 组合模式:用于整体与部分的结构

3 装饰器 vs 适配器

  • 纯粹的适配器模式 仅用于改变接口,不改变其功能,部分情况下我们需要改变一点功能以适配新接口。但使用适配器模式时,接口一定会有一个 回炉重造 的过程。
  • 装饰模式 不改变原有的接口,仅用于增强原有功能或添加新功能,强调的是 锦上添花

4 模板模式 vs 回凋

两者的应用场景一致 → 定义好算法骨架,并对外开放扩展点,不同的地方:

  • 模板模式 基于 继承 关系实现,子类重写父类的抽象方法,一种类间的关系,针对不同实现都要定义不同的子类,子类必须实现父类中定义的所有抽象方法;
  • 回调 基于 组合 关系实现,把一个对象传递给另一个对象,一种对象间的关系,可使用匿名类来创建回调对象,不用事先定义类;