桥梁模式(Bridge Pattern)
定义:Decouple an abstraction from its implementation so that the two can
vary independently.(将抽象和实现解耦,使得两者可以独立地变化。)
组成:
- 抽象(Abstraction )角色:它定义了抽象类的接口而且维护着一个指向实现
(Implementor)角色的引用。 - 精确抽象(RefinedAbstraction)角色:实现并扩充由抽象角色定义的接口。
- 实现(Implementor)角色:给出了实现类的接口,这里的接口与抽象角色中的接口可以不一致。
- 具体实现(ConcreteImplementor)角色:给出了实现角色定义接口的具体实现。
应用场景:
- 当你的系统中有多个地方要使用到类似的行为,或者是多个类似行为的组合时,可以考
虑使用桥梁模式来提高重用,并减少因为行为的差异而产生的子类。 - 系统中某个类的行为可能会有几种不同的变化趋势,为了有效的将变化封装,可以考虑
将类的行为抽取出来。 - 当然上面的情况也可以是这样,行为可能要被不同相似类使用,也可以考虑使用桥梁模式来实现。
桥梁模式使用了低耦合性的组合代替继承,使得它具备了不少好处&#x