意图
将抽象化与实现化解耦,使得二者可以独立变化
public interface Sourceable { public void method(); }
public class SourceSub1 implements Sourceable { @Override public void method() { System.out.println("this is the first sub!"); } }
public class SourceSub2 implements Sourceable { @Override public void method() { System.out.println("this is the second sub!"); } }
定义一个桥
public abstract class Bridge { private Sourceable source; public void method(){ source.method(); } public Sourceable getSource() { return source; } public void setSource(Sourceable source) { this.source = source; } }
public class MyBridge extends Bridge { public void method(){ getSource().method(); } }
测试
public class BridgeTest { public static void main(String[] args) { Bridge bridge = new MyBridge(); //调用第一个对象 Sourceable source1 = new SourceSub1(); bridge.setSource(source1); bridge.method(); //调用第二个对象 Sourceable source2 = new SourceSub2(); bridge.setSource(source2); bridge.method(); } }
例如JDBC连接不同的数据库时
转自:http://blog.csdn.net/zhangerqing/article/details/8239539