zoukankan      html  css  js  c++  java
  • 桥接模式(Bridge Pattern)

    桥接模式,用于将抽象化与实现化解偶,使得二者可以独立变化。

    举一个数据库JDBC的例子:

    定义一个Driver接口,不同的数据库实现的接口,如MySQL,SQLServer

    public interface Driver {
        public void connect();
    }

    MySQL具体类:

    public class MySQL implements Driver {
        public void connect() {
            System.out.println("connect to MySQL");
        }
    }

    SQLServer具体类:

    public class SQLServer implements Driver {
        public void connect() {
            System.out.println("connect to SQLServer");
        }
    }

    一个桥接类:

    public class DriverManager {
        Driver driver;
        public setDriver(Driver d) {
            driver = d;
        }
      
    public connect() { driver.connect(); } }

    测试代码:

    DriverManager dm = new DriverManager();
    Driver mysqldriver = new MySQL();
    dm.setDriver(driver);
    dm.connect();

    Driver sqlserverdriver = new SQLServer();
    dm.setDriver(driver);
    dm.connect();

    利用DriverManager作为桥接类,将不同数据库的具体实现与客户实现解耦,使得二者可以独立变化,客户实现的时候才决定使用哪个数据库,而且打算更换数据库时只需要修改代码中选择数据库的部分,数据库的厂商可以自行设计数据库的具体实现,只需要保证实现Driver接口,且对DriverManager可见的接口一致即可。

  • 相关阅读:
    ngRoute AngularJs自带的路由
    AngularJs $resource 高大上的数据交互
    AngularJs filter 过滤器
    eBPF监控工具bcc系列一启航
    [转载] kprobe原理解析(一)
    c++通过CMake实现debug开关
    如何使用fio模拟线上环境
    汇编学习pushl, popl
    block:cfq 学习02
    阻抗匹配详细讲解(以前的转贴)
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5522730.html
Copyright © 2011-2022 走看看