设计模式——10桥接模式(Bridge)

本文介绍了桥接模式的概念及其在JDBC中的应用实例。通过定义接口和实现类的方式,实现抽象化与实现化的解耦,使得二者可以独立变化。示例展示了如何通过桥接类调用不同实现类的方法。

10、桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。

实现代码:
先定义接口:
[java] view plaincopy

  1. public interface Sourceable {
  2. public void method();
  3. }
    分别定义两个实现类:

[java] view plaincopy

  1. public class SourceSub1 implements Sourceable {
  2. @Override
  3. public void method() {
  4. System.out.println("this is the first sub!");
  5. }
  6. }
    [java] view plaincopy
  7. public class SourceSub2 implements Sourceable {
  8. @Override
  9. public void method() {
  10. System.out.println("this is the second sub!");
  11. }
  12. }
    定义一个桥,持有Sourceable的一个实例:

[java] view plaincopy

  1. public abstract class Bridge {
  2. private Sourceable source;
  3. public void method(){
  4. source.method();
  5. }
  6. public Sourceable getSource() {
  7. return source;
  8. }
  9. public void setSource(Sourceable source) {
  10. this.source = source;
  11. }
  12. }
    [java] view plaincopy
  13. public class MyBridge extends Bridge {
  14. public void method(){
  15. getSource().method();
  16. }
  17. }
    测试类:

[java] view plaincopy

  1. public class BridgeTest {
  2. public static void main(String[] args) {
  3. Bridge bridge = new MyBridge();
  4. /调用第一个对象/
  5. Sourceable source1 = new SourceSub1();
  6. bridge.setSource(source1);
  7. bridge.method();
  8. /调用第二个对象/
  9. Sourceable source2 = new SourceSub2();
  10. bridge.setSource(source2);
  11. bridge.method();
  12. }
  13. }
    output:

this is the first sub!
this is the second sub!
这样,就通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的调用。接下来我再画个图,大家就应该明白了,因为这个图是我们JDBC连接的原理,有数据库学习基础的,一结合就都懂了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值