桥接模式
桥接模式是一种比较常见的结构型设计模式,如果系统中的某个类存在两个独立变化的维度,通过桥接模式可以将这两个维度分离出来,使两者可以独立扩展。
桥接模式是一个非常实用的设计模式,它体现了很多面向对象设计原则的思想,单一职责原则、接口隔离原则、合成复用原则、开闭原则、依赖倒转原则、里氏替换原则等。
定义
桥接模式将抽象部分与它的实现部分解耦,使两者都能够独立变化。它用抽象关联取代了传统的多层继承,将类之间的静态继承关系转换为动态的对象组合关系,使系统更加灵活,易于扩展,有效控制了系统中类的个数。
结构
- Abstraction(抽象类): 用于定义抽象类的接口,通常是类而不是接口,它定义了一个Implementor成员变量,与Implementor的实现类关联,用来表示分离出去的另一个维度。
- RefinedAbstraction(扩充抽象类):Abstraction的实现类,实现了父类维度的功能,同时可以调用Implementor维度的功能。
- Implementor(实现类接口): 分离出去的另一个维度,可以被Abstraction调用。
- ConcreteImplementor(具体实现类): 实现Implementor的抽象功能,运行时为Abstraction提供具体的业务方法。