桥接模式(Bridge Pattern)是用于把抽象化与实现化解耦,使得二者可以独立变化。
介绍
意图:
将抽象部分与实现部分分离,使它们都可以独立的变化。
在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。
优点:
- 抽象和实现的分离。
- 优秀的扩展能力。
- 实现细节对客户透明。
缺点:
- 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。
例子
我们以前端中常见的功能绘图为例:
- 假设我们希望:对外统一提供一个类
Shape
用于绘制图形; - 为了实现不同形状的绘制,我们需要:用于指定形状的类,一定要实现某些函数或满足一定的规则,于是我们定义了一个
DrawAPI
接口,传入不同的类需要实现这个接口;
比如我们可以完成绘制 RedCircle
、GreenCircle
,则其依赖图如下: