目录
定义
桥接模式也叫桥梁模式,是一种结构型设计模式。主要目的是实现类与类之间的解耦。定义为:
- 将抽象部分与它的实现部分分离 (这样它们就实现了解耦),使它们都可以独立的变化。而不会直接影响到其他部分。
该模式充分利用了类与类之间的依赖关系,抽象类依赖实现类。在抽象类中调用所依赖类的方法,这样,抽象类和实现类就可以互不干扰了。
桥接模式主要包含四种角色:
- 抽象角色(Abstration):是一个抽象类,该抽象类含有Implementor声明的变量,即维护一个Implementor类型对象。
- 实现角色 (Implementor): 定义实现类的接口或抽象类,该接口不一定要与 Abstraction 的接口完全一致。 事实上这两个接口可以完全不同。 一般来讲,Implementor接口仅提供基本操作,而Abstraction则定义了基于这些基本操作的较高层次的操作。
- 修正抽象化角色 (RefinedAbstraction):抽象角色的具体实现,该类一般是对抽象角色的方法进行完善和扩展
- 具体实现化角色 (ConcreteImplementor): 实现 Implementor 接口并定义它的具体实现。
桥接模式(Bridge)的动机
- 当一种抽象类型可能有多种实现方式时,一般情况我们可以考虑使用继承来解决抽象类型的多种实现,在抽象类型中定义接口