您的位置:首页 > 其它

结构型模式之桥接BRIDGE

2017-03-01 10:41 211 查看
推荐先看《敏捷开发:原则、模式与实例》了解基本开发原则

一、意图

将抽象部分同其实现部分分离开来,使其可以独立变化。

二、图解



上图为了实现多平台应用,使用继承分别定义了X平台和PM平台的两个window子类。当我们添加一个IconWindow子类用于处理图标时,为了支持X和PM平台,我们又不得不实现两个新类XIconWindow和PMIconWindow,而且二者所用代码可能与原来Xwindow和PMWindow类似。如果还有更多平台的话,那不得不定义更多子类。而且当用户创建一个窗口时不得不实例化一个具体类,使得Xwindow或PMWindow与抽象类WIndow捆绑起来,用户很难将代码移植到其他平台。

而使用桥接模式,如下图:



可以看到Window的实现部分分离到了WIndowImp中,由于各个平台接口不同,我们继承WIndowImp实现不同平台子类。而原来的抽象类WIndow中通过对WindowImp对象进行动态(可以根据不同平台实例不同子类)引用,实现功能。而IconWindow和TransientWindow通过继承定义新方法调用基类。

这样,我们可以在程序运行时对实现部分进行选择或切换,你可以根据需要进行不同功能的组合;实现对抽象和实现的独立扩充,对实现部分的修改也不会引起客户代码的重新编译;而且还可以对客户隐藏实现部分。当只有一个实现时是没有必要分离接口实现的,二者关系已经是一对一的,但当你希望修改实现部分不会影响客户程序,分离机制还是有用的。

三、结构

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  敏捷开发