Bridge
提出问题
- 当一个抽象可能有多个实现时,通常使用继承进行协调。抽象类定义对该接口的抽象,而具体的子类用不同的方式加以实现。
- 但是此方法不够灵活,继承机制将抽象部分与实现部分固定在一起,
为什么要用(作用)
- 将抽象部分与它的实现部分分离,使他们都可以独立变化
应用
适用性
- 不希望在抽象和它的实现部分间有一个固定的绑定关系。可能是因为在程序运行时刻实现部分应可以被选择或切换
- 类的抽象以及它的实现都应该可以通过生成子类的方法进行扩充。这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对他们进行扩充
- 对一个抽象的实现部分的修改应该对客户不产生影响,即客户的代码不必重新编译
- 你想在多个对象间共享实现(可能使用引用计数),但同时要求客户不知道这一点