桥接模式

使用桥接模式, 不只改变你的实现, 也改变你的抽象

案例

背景: 各电视有其遥控器实现, 现随着电视越来越多, 遥控器也要满足功能的拓展
image.png
使用桥接模式后
image.png
使之变成两个层次结构, 一个是遥控器, 另一个是平台特定的电视机实现, 有了桥接的存在, 可以独立的改变这两个层次, 对遥控器的具体实现的更改, 不会影响到客户

生成器模式(建造者模式)

使用生成器模式封装一个产品的构造过程, 并允许按步骤构造
**

  • 将复杂对象的创建过程封装起来
  • 允许对象可以通过多个步骤来创建, 并且可以改变过程(与只有一个步骤的工厂模式不同)
  • 向客户隐藏内部产品的实现
  • 产品的实现可以被替换, 因为客户只看到一个抽象的接口


image.png

责任链模式

当你想要一个以上的对象有机会能够处理某个请求的时候, 就使用责任链模式
**

  • 责任链将请求的发送者和接受者解耦
  • 可以简化对象, 因为他不需要知道链的结构
  • 可以改变链内的成员或者调动他们的次序, 允许你动态的新增或删除责任


image.png

蝇量模式(享元模式)

如想让某个类的一个实例能用来提供许多”虚拟实例”, 就使用蝇量模式

解释器模式

使用解释器模式为语言创建解释器
**

中介者模式

使用中介者模式来集中相关对象之间复杂的沟通和控制方式
**

备忘录模式

当你需要让对象返回之前的状态时, 就使用备忘录模式
**

原型模式

当创建给定类的实例的过程很昂贵或很复杂时, 就使用
**

访问者模式

当你想要为一个对象的组合增加新的能力, 且封装并不重要时, 就使用访问者模式
**