桥接模式(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可见的接口一致即可。

posted @ 2016-05-24 11:12  没有梦想的小灰灰  阅读(203)  评论(0)    收藏  举报