java設計模式之橋接模式

橋接模式:將抽象部分與他的實現部分分離,這樣抽象化與實現化解耦,使他們可以獨立的變化。

橋接模式通過橋接(接口)將抽象部分和實現部分解耦,橋接是一個接口,實現方繼承這個接口,抽象方在抽象類中調用接口中的方法指向實現方。這樣實現方通過實現橋接口進行單方面擴展,而抽象方通過繼承抽象類進行單方面擴展,兩者通過橋接口調用,而接口不受雙方擴展的影響。

UML類圖:

 

interface Driver {
    public void connect();
}

class MysqlDriver implements Driver {
    @Override
    public void connect() {
        System.out.println("連接Mysql數據庫");
    }
}
class OracleDriver implements Driver {
    @Override
    public void connect() {
        System.out.println("連接Oracle數據庫");
    }
}
//抽象類
abstract class Bridge {
    private Driver driver;
    public void connect() {
        driver.connect();
    }
    public void setDriver(Driver driverTemp) {
        this.driver = driverTemp;
    }
    public Driver getDriver() {
        return this.driver;
    }
}
//實現類
class MyBridge extends Bridge { }
//測試類
public class BridgeTest {
    public static void main(String[] args) {
        Bridge mysqlBridge = new MyBridge();

        Driver mysqlDriver = new MysqlDriver();
        mysqlBridge.setDriver(mysqlDriver);
        mysqlBridge.connect();

        OracleDriver oracleDriver = new OracleDriver();
        mysqlBridge.setDriver(oracleDriver);
        mysqlBridge.connect();
    }
}

橋接模式是有方向性的,橋綁定的一方是被調用者,屬於被動方,抽象方屬於主動方。

橋接模式降低的代碼的耦合度,提高的系統的可擴展性,實現細節透明化。但是橋接模式的引入加大了系統的理解和設計難度

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章