0%

Bridge

1. 意图

将抽象部分和实现部分分离, 使它们可以独立地变化.

2. 适用场景

  • 不希望在抽象与它的实现部分之间有固定的绑定关系. 在程序运行时实现部分可以被选择与切换.
  • 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充.
  • 对抽象的实现部分的修改不应该影响客户

3. 实现

3.1. 参与者

  • Abstraction
    定义抽象类的接口
  • RefinedAbstraction
    扩充由 Abstraction 定义的接口
  • Implementor
    定义实现类的接口
  • ConcreteImplementor
    实现 Implementor

将抽象与实现分离, 为用户提供一个稳定的接口.

3.2. 结构

3.3. 开发规范

  1. Abstraction 与 Implementor 之间应该是一对一的关系