Technology-设计模式-桥接模式

本文介绍了GoF中的桥接模式。

模式推演

可变的遥控器:

如果需要设计一个遥控器,这个遥控器的按钮是可能发生变化的,初始设计如下:

Technology-DesignPattern-Bridge-Init

但是,如果我们希望一个遥控器可以操控多台电视机,上述设计显然满足不了需求,我们需要进一步封装变化。

可变的电视机:

由于我们希望一个遥控器可以操控多台电视机,那么遥控器不能依赖电视机的具体,而必须是电视机的抽象,所以,将电视机的共同方法抽象成超类。

Technology-DesignPattern-Bridge-Class

这里,注意,在遥控器和电视机两个抽象之间建立了联系,这种设计方式称为桥接模式。

定义

桥接模式(Bridge Pattern):通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。

用途:

  • 适合使用在需要跨越多个平台的图形和窗口系统上;
  • 当需要用不同的方式改变接口和实现时,你会发现桥接模式很好用。

优点:

  • 将实现予以解耦,让它和界面之间不再永久绑定;
  • 抽象和实现可以独立拓展,不会影响到对方;
  • 对于“具体的抽象类”所做的改变,不会影响到客户。

缺点:

  • 增加了复杂度。