桥接模式

桥接模式(Bridge Pattern)是用于把抽象化与实现化解耦,使得二者可以独立变化。

介绍

意图:

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

  • 在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。

优点:

  1. 抽象和实现的分离。
  2. 优秀的扩展能力。
  3. 实现细节对客户透明。

缺点:

  • 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。

例子

我们以前端中常见的功能绘图为例:

  1. 假设我们希望:对外统一提供一个类 Shape 用于绘制图形;
  2. 为了实现不同形状的绘制,我们需要:用于指定形状的类,一定要实现某些函数或满足一定的规则,于是我们定义了一个 DrawAPI 接口,传入不同的类需要实现这个接口;

比如我们可以完成绘制 RedCircleGreenCircle,则其依赖图如下:

../BridgePattern.jpg