设计模式:桥接模式

Bridge

提出问题

  • 当一个抽象可能有多个实现时,通常使用继承进行协调。抽象类定义对该接口的抽象,而具体的子类用不同的方式加以实现。
    • 但是此方法不够灵活,继承机制将抽象部分与实现部分固定在一起,

为什么要用(作用)

  • 将抽象部分与它的实现部分分离,使他们都可以独立变化

应用

适用性

  • 不希望在抽象和它的实现部分间有一个固定的绑定关系。可能是因为在程序运行时刻实现部分应可以被选择或切换
  • 类的抽象以及它的实现都应该可以通过生成子类的方法进行扩充。这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对他们进行扩充
  • 对一个抽象的实现部分的修改应该对客户不产生影响,即客户的代码不必重新编译
  • 你想在多个对象间共享实现(可能使用引用计数),但同时要求客户不知道这一点

案例

是什么

结构

协作

参与者

协作

效果

需要权衡

优缺

实现

步骤

示例1

相关模式

框架中的设计模式

总结

参考