Bridge模式——对象结构型模式

    今天看了Bridge模式,对其进行简单的总结,并给出几篇通俗易懂的文章链接。

(一)意图——将抽象部分和它的实现部分分离,使它们都可以独立地变化。

适用于从多维度描述的类型,拆解开来,使其能沿着各维度独立变化。脱耦。

(二)动机——解决继承机制带来的不足。

1)扩展抽象不方便。扩展时要重新定义一个新的类。

2)继承机制使得客户代码需要重新编译。

为解决以上两个问题,使用桥接的方式使得抽象类和它的实现分离,使得它们可以按照自己的方式独立变化。

(三)结构——抽象和实现分离。

以下是桥接模式的示意图:

(四)优点

1)分离接口及其实现部分。将Abstraction和Implementor分离有助于降低对实现部分编译时刻的依赖性,当改变一个实现类时,并不需要重新编译Abstraction 和它的客户程序,保证了一个类库的不同版本之间的二进制兼容性;接口和实现分离有助于分层,产生更好的结构化系统——抽象化层和实现层,系统的高层只要知道Abstraction 和Implementor 即可。

2)提高可扩充性。可以独立对Implementor 和Abstraction 进行扩充。

3)实现细节对客户透明。可以对客户隐藏实现细节,例如共享Implementor 对象以及相应的引用技术机制。

(五)补充。

1)有一个以上构件时使用桥梁模式比较好。

2)创建正确的实现对象。缺省实现对象;代理实现对象。

(六)参考。

http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html

http://blog.csdn.net/hguisu/article/details/7529194

http://blog.csdn.net/yhmhappy2006/article/details/7227017

《程序员面试宝典》P246 ——设计模式的思想描述蜡笔和毛笔的不同。

posted @ 2015-01-13 15:23  evashi  阅读(218)  评论(0编辑  收藏  举报