`

Bridge(桥接)---对象结构型模式

阅读更多

将抽象部分与它的实现部分分离,使它们都可以独立地变化。

当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不用方式加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分可以独立地进行修改、扩充和重用。

将Window抽象和它的实现部分分别放在独立的类层次结构中。其中一个类层次结构针对窗口接口(Window、IconWindow、TransientWindow),另外一个独立的类层次结构针对平台相关的窗口实现部分,这个类层次结构的根类为WindowImp。

对Window子类的所有操作都是用WindowImp接口中的抽象操作实现的。这就将窗口的抽象与系统平台相关的实现部分分离开来。因此,我们将Window与WindowImp之间的关系称之为桥接,因为它在抽象类与它的实现之间起到了桥梁作用,使它们可以独立地变化。

以下情况使用Bridge模式:

1、你不希望在抽象和它的实现部分之间有一个固定的绑定关系。

2、类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。这是Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。

3、对一个抽象的实现部分的修改应对客户部产生影响,即客户的代码不必重新编译。

4、对客户完全隐藏抽象的实现部分。

Bridge模式的优点:

1、分离接口及其实现部分。

2、提高可扩充性。

3、实现细节对客户透明。

 

Adapter模式用来帮助无关的类协同工作,它通常在系统设计完成后才会被使用。然而,Bridge模式则是在系统开始时就被使用,它使得抽象接口和实现部分可以独立进行改变。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics