由于抽象与实现分离,所以扩展能力强;

由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,这增加了系统的理解与设计难度。

当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。

当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。

当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。

桥接模式使用“对象间的组合关系”,解耦了对象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化,所谓抽象和实现沿着各自维度的变化,即“子类化”它们。

桥接模式有时候类似于多继承方案,但是多继承方案往往违背单一职责原则(即一个类只有一个变化的原因),复用性较差。桥接模式是比多继承方案更好的解决方案。

桥接模式的应用一般在“两个非常强的变化维度”,有时一个类也有多于两个的变化维度,这时可以使用桥接模式的扩展模式。