1. 定义
桥接模式,也叫作 桥梁模式,英文是 Bridge Design Pattern。定义是将抽象和实现解耦,让它们可以独立变化。还有另外一种理解方式:“一个类存在两个(或多个)独立变化的维度,我们通过组合的方式,让这两个(或多个)维度可以独立进行扩展。”
对于第一种 GoF 的理解方式,弄懂定义中 “抽象” 和 “实现” 两个概念,是理解它的关键。定义中的 “抽象”,指的并非 “抽象类 ”或 “接口” ,而是被抽象出来的一套 “类库”,它只包含骨架代码,真正的业务逻辑需要委派给定义中的 “实现” 来完成。而定义中的 “实现”,也并非 “接口的实现类” ,而是一套独立的 “类库”。“抽象” 和 “实现” 独立开发,通过对象之间的组合关系,组装在一起。
对于第二种理解方式,它非常类似 “组合优于继承” 设计原则,通过组合关系来替代继承关系,避免继承层次的指数级爆炸。
2. 通用类图
3.优点及使用场景
3.1 优点
- 抽象和实现分离
- 优秀的扩展能力
- 实现细节对客户透明化
3.2 使用场景
- 不希望或不适用适用继承的场景。
- 接口或抽象类不稳定的场景。
- 重用性要求较高的场景。