java设计模式(9)-桥接模式

2019-10-17 01:42:50 浏览数 (1)

这篇推文分享一下桥接模式,JDBC原理也是运用了桥接模式,先设置驱动名称,链接,来获得数据库链接,降低耦合,减少维护

桥接模式:

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

代码语言:javascript复制
public interface Source {  
    public void SourceMethod();  
}  

实现类:

代码语言:javascript复制
public class SourceImplOne implements Source {  
  
    @Override  
    public void SourceMethod() {  
        System.out.println("第一个实现类!");  
    }  
}  
代码语言:javascript复制
public class SourceImplTwo implements Source{  
  
    @Override  
    public void SourceMethod() {  
        System.out.println("第二个实现类!");  
    }  
}  

桥:

代码语言:javascript复制
public abstract class Bridge {  
    private Source source;  
  
    public void SourceMethod(){  
        source.SourceMethod();  
    }  
      
    public Sourceable getSource() {  
        return source;  
    }  
  
    public void setSource(Sourceable source) {  
        this.source = source;  
    }  
}  
代码语言:javascript复制
public class MyBridge extends Bridge {  
    public void method(){  
        getSource().SourceMethod();  
    }  
}  

测试类:

代码语言:javascript复制
public class BridgeTest {  
      
    public static void main(String[] args) {  
          
        Bridge bridge = new MyBridge();  
          
        /*调用第一个对象*/  
        SourceImplOne source1 = new SourceImplOne();  
        bridge.setSource(source1);  
        bridge.method();  
          
        /*调用第二个对象*/  
        SourceImplTwo source2 = new SourceImplTwo();  
        bridge.setSource(source2);  
        bridge.method();  
    }  
}  

输出:

代码语言:javascript复制
第一个实现类!
第二个实现类!

Bridge类的调用,实现了对接口Source的实现类SourceImplOne和SourceImplTwo的调用,这个就是JDBC连接的原理。

0 人点赞