桥接模式(Bridge Pattern)又叫作桥梁模式、接口(Interface)模式或柄体(Handle and Body)模式,指将抽象部分与具体实现部分分离,使它们都可以独立地变化,属于结构型设计模式。
桥接模式的主要目的是通过组合的方式建立两个类之间的联系,而不是继承,但又类似多重继承方案。但是多重继承方案往往违背了类的单一职责原则,其复用性比较差,桥接模式是比多重继承方案更好的替代方案。桥接模式的核心在于把抽象与实现解耦。
使用场景:
(1)在抽象和具体实现之间需要增加更多灵活性的场景。
(2)一个类存在两个(或多个)独立变化的维度,而这两个(或多个)维度都需要独立进行扩展。
(3)不希望使用继承,或因为多层继承导致系统类的个数剧增。
替代继承,设计模式优先使用组合/聚合,继承具有强侵入性
优点
(1)分离抽象部分及其具体实现部分。
(2)提高了系统的扩展性。
(3)符合开闭原则。
(4)符合合成复用原则。
缺点
(1)增加了系统的理解与设计难度。
(2)需要正确地识别系统中两个独立变化的维度。

public abstract class Abstraction {public abstract void operate();protected Implementor implementor;public Abstraction(Implementor implementor) {this.implementor = implementor;}}public interface Implementor {void implement();}public class ConcreteImplementor implements Implementor{@Overridepublic void implement() {}}public class ConcreteAbstraction extends Abstraction {@Overridepublic void operate() {this.implementor.implement();}public ConcreteAbstraction(Implementor implementor) {super(implementor);}}
在适配器模式的基础上,桥接模式实现了Adaptee的多态,而适配器模式的Adaptee是固定的
