首页 > 其他分享 >[设计模式]桥接模式(Bridge) DriverManager

[设计模式]桥接模式(Bridge) DriverManager

时间:2023-03-23 21:06:55浏览次数:38  
标签:Sourceable Bridge bridge 桥接 void public source 设计模式 method


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

实现代码:

接口和2个实现类:


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!");  
    }  
}

定义一个桥,持有Sourceable的一个实例(不用管是souceSub1还是sourceSub2):


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();  
    }  
}


output


this is the first sub!
this is the second sub!

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

标签:Sourceable,Bridge,bridge,桥接,void,public,source,设计模式,method
From: https://blog.51cto.com/u_6813689/6145935

相关文章

  • 从零开始搞一个androidApp,实现h5自动更新、jsbridge
    准备window电脑javajdk(包含了javajre)下载安装androidsdk下载安装androidstudio下载安装gradle下载一台带sim卡的android手机nodejs下载安装 npminstall-g......
  • Linux 网络配置 ---桥接模式---最简单的方法!!!
    1.桥接模式(Bridged)VMware桥接模式,也就是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部......
  • 20.(行为型模式)java设计模式之迭代器模式
    一、什么是迭代器模式(IteratorPattern)   提供—种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部实现,属于行为型模式。应用场景:   —般来说,迭......
  • 设计模式之迭代器模式
    个人理解:通过迭代器模式无需知道底层结构,实现数据遍历场景:有书存放在书架上,怎么去取书?代码如下:作用:将书放到书架中,并将书的名字按顺序显示出来示意图:  集合接口总......
  • 小菜学设计模式 工厂设计模式 Simple Factory Pattern
    设计模式的工厂设计模式。工厂模式有以下几种形态:简单工厂(SimpleFactory)模式工厂方法(FactoryMethod)模式抽象工厂(AbstractFactory)模式优点:工厂类含有必要的判断逻......
  • 小菜学设计模式 单一职责原则
    单一职责原则:就一个类而言,应该仅有一个引起它变化的原因!如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。......
  • 前端设计模式——模板方法模式
    模板方法模式(TemplateMethodPattern):定义一个行为的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个行为的结构即可重定义该行为的某些特定步骤。这些步......
  • 配置docker容器veth-pair---实现桥接模式
    前言:已知docker网络三种基础模式bridge、host、none,·bridge:桥接模式,创建容器时默认的网络模式;docker安装时,在宿主机内创建一个虚拟网桥docker0,并自动给docker......
  • go 常用设计模式-结构型模式
    本次分享结构型模式,主要包括:代理模式装饰器模式适配器模式享元模式1.代理模式packageproxyimport"fmt"/*结构型模式代理,代表打理,以他人的名义代表委托人......
  • go 常用设计模式-行为型模式
    本次分享的行为型模式,主要包含:责任链模式策略模式观察者模式模板模式访问者模式1.责任链模式packagechainOfResponsibilityimport"fmt"/*行为模式:通过账......