23种设计模式 第二部分 结构模式(5) 桥接模式

来源:互联网 发布:手机淘宝修改发货地址 编辑:程序博客网 时间:2024/06/05 10:52

理解

桥,就是连接两个不同的东西嘛。桥接模式就是把抽象和具体分开,让它们都能独立的变化,互相没有影响。用意是:将抽象化与实现化解耦,使得二者可以独立变化。我们用JDBC时,切换数据库时,代码基本不用改,其实就是用的bridge 模式。维基百科:"Bridge pattern is meant to decouple an abstraction from its implementation so that the two can vary independently"


实现

首先定义接口:

public interface Sourceable {public void method();}
两个实现类:

public class SourceSub1 implements Sourceable{public void method(){System.out.println("First sub: 实现1中的方法。");}}
public class SourceSub2 implements Sourceable{public void method() {System.out.println("Second sub: 实现2中的方法。");}}
Bridge类:

public class Bridge {Sourceable source;public void method() {source.method();}public Sourceable getSource() {return source;}public void setSource(Sourceable source) {this.source = source;}}
MyBridge:

public class MyBridge extends Bridge {public void method() {getSource().method();}}
测试类:

public class Test {public static void main(String[] args){Bridge bridge = new Bridge();Sourceable source1 = new SourceSub1();bridge.setSource(source1);bridge.method();Sourceable source2 = new SourceSub2();bridge.setSource(source2);bridge.method();}}
输出:

First sub: 实现1中的方法。Second sub: 实现2中的方法。
这样,我们实现了通过接口对不同实现的调用,即 通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的调用。下面是使用桥接模式完成JDBC的图,对照后比较好理解Bridge:

总结

桥接模式(Bridge)优点:
     将实现予以解耦,让它和界面之间不再永久绑定。
     抽象和实现可以独立扩展,不会影响到对方。
     对于具体实现的修改,不会影响到客户端。

桥接模式(Bridge)缺点:
增加了设计复杂度。
 抽象类的修改影响到子类。
桥接模式(Bridge)用途:
适用

在需要跨多平台的图形和窗口系统。
当需要用不同的方式改变接口和实现时。


这里也有桥接模式比较好的解读:

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

http://www.cnblogs.com/rush/archive/2011/06/29/2093743.html

0 0
原创粉丝点击