桥接模式 Bridge

目的

将抽象和实现解耦,抽象是存在于多个实体中的共同的概念联系
将“类的功能层次结构”和“类的实现层次结构”分离为两个独立的类层次结构,
使得二者可以独立的变化。

应用场景:

  1. 希望避免抽象和实现之间的永久绑定
  2. 希望抽象和实现都能够通过子类的方式独立拓展
  3. 实现不会影响客户

类图解释

桥接模式 Bridge
参与者:
* Abstraction:定义抽象部分的接口,维护一个指向实现部分对象的引用
* RefinedAbstraction:拓展Abstraction定义的接口
* Implementor:定义实现部分的接口
* ConcreteImplementor

使用结果

  1. 解耦接口和实现
    实现不再被永久绑定到接口上,可以在runtime的时候动态改变实现,高层次部分只需要知道Abstraction和Implementor
  2. 增加拓展性
  3. 对客户隐藏实现细节

例子

Java实例

桥接模式 Bridge

桥接模式 Bridge

例子2

桥接模式 Bridge

变种

  1. 省略“实现部分”接口

桥接模式 Bridge

  1. 省略功能模块接口

桥接模式 Bridge
3. 实现共享

桥接模式 Bridge

相关文章: