首頁 >Java >java教程 >java設計模式:橋接模式抽象化與實現化解耦的理解

java設計模式:橋接模式抽象化與實現化解耦的理解

php是最好的语言
php是最好的语言原創
2018-08-01 14:35:112518瀏覽

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

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

UML類別圖:

java設計模式:橋接模式抽象化與實現化解耦的理解

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

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

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

相關文章:

#Java設計模式中關於橋接模式的詳解

JavaScript設計模式系列六:橋接模式

相關影片:

#JavaScript設計模式完整影片教學

以上是java設計模式:橋接模式抽象化與實現化解耦的理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn