Bridge(桥接)模式

Bridge模式 是 将分离部分与它的实现部分分离,使它们都可以独立的本地化

特点:1> 分离接口及其实现部分,这里实现 Abstraction 和 Implements 的分离,有助于降低对实现部分的依赖,从而产生更好的结构化系统
           2> 提高可充性,可以独立的对 Abstraction 和 Implements 层次结构进行扩充
意图:将一组实现部分从另一组使用它们的对象中分离出来
问题:一个抽象类的派生类必须使用多种实现部分,但又不能引起类数量的爆炸
解决方案:为所有的实现部分定义一个接口,让抽象类的所有派生类使用这个接口
参与者 与 写作者:Abstraction为正在实现的对象定义接口。Implementor为特定的实现部分类定义接口。Abstraction的派生类使用 Implementor 的派生类,而不必知道自己使用的特定 ConcreteImplementor
效果:实现部分与使用它的对象的分离,增加了灵活性,客户对象不需要了解实现问题。在被实现的抽象部分基类中包含一个实现部分积累的句柄
注:在Java中,你可以在实现部分使用接口来代替抽象类

Bridge(桥接)模式_第1张图片
Bridge 模式的标准简化视图

桥接模式 和 适配器模式
共同点:桥接和适配器都是让两个东西配合工作
不同点:出发点不同
适配器模式 :改变已有的两个接口,让他们相容
桥接模式:分离抽象化和实现,使两者的接口可以不同目的是分离

试用情况
1> 如果一个系统需要在构建的抽象化角色和具体话角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系
2> 设置要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的
3> 一个构建有多于一个的抽象化角色和实现化角色,系统需要它们之间进行动态耦合。虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要对立变化,设计要求需要独立管理这两者。桥接模式是一个非常有用的模式,也非常复杂,它很好的符合了开放 ——封闭原则和优先使用对象,而不是继承这两个方面对象原则

你可能感兴趣的:(设计模式)