橋接模式:將抽象部分與他的實作部分分離,這樣抽象化與實現化解耦,使他們可以獨立的變化。
透過橋接(接口)將抽象部分和實作部分解耦,橋接是一個接口,實作方繼承這個接口,抽象方在抽象類別中呼叫接口中的方法指向實作方。這樣實作方透過實作橋接介面進行單方面擴展,而抽象方透過繼承抽象類別進行單方面擴展,兩者透過橋接埠調用,而介面不受雙方擴展的影響。
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(); } }
橋接模式是有方向性的,橋綁定的一方是被呼叫者,屬於被動方,抽象方屬於主動方。
橋接模式降低的程式碼的耦合度,提高的系統的可擴展性,實現細節透明化。但是橋接模式的引進加大了系統的理解與設計難度
相關文章:
相關影片:
以上是java設計模式:橋接模式抽象化與實現化解耦的理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!