您的位置:首页 > 其它

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

2013-09-02 15:29 232 查看
1、桥接模式

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

像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本上不需要改动太多的代码,

原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就可以了。

应用场景: (各个变化因素之间的关系是一种弱关联)

1、当一个对象有多个变化因素的时候,通过抽象这些变化因素,将依赖具体实现,修改为依赖抽象。

2、当某个变化因素在多个对象中共享时。我们可以抽象出这个变化因素,然后实现这些不同的变化因素。

3、当我们期望一个对象的多个变化因素可以动态的变化,而且不影响客户的程序的使用时。





实例一

先定义一个接口与两个实现类 -- (桥的一边,可以独立变化)

public interface Sourceable {

public void method();

}

public class SourceSub1 implements Sourceable {

@Override
public void method() {
System.out.println(" ~~~~ SourceSub1  method ~~~  ");
}
}

public class SourceSub2 implements Sourceable {

@Override
public void method() {
System.out.println(" ~~~~ SourceSub2  method ~~~  ");
}

}

定义一个桥,持有上面功能的实例

public abstract class Bridge {

private Sourceable source;

public abstract void method();

public Sourceable getSource() {
return this.source;
}

public void setSource(final Sourceable source) {
this.source = source;
}
}

public class MyBridge extends Bridge {

@Override
public void method() {
this.getSource().method();
}
}

模拟调用(相当于桥的另一边,可以独立变化)

public class Client {

public static void main(final String[] args) {
final Sourceable s1 = new SourceSub1();
final Bridge b = new MyBridge();
b.setSource(s1);
b.method();

final Sourceable s2 = new SourceSub2();
b.setSource(s2);
b.method();
}
}

这样就通过对Bridge类的调用,实现了对接口Sourceable实现类的调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: