Facade 外觀(結構型模式)

2022-03-15 09:56:39 字數 1040 閱讀 1189

問題

坦克根據外部環境不一樣,可以分別由引擎、控制器、車輪、車身等組合構成。

動機當客戶程式與各子系統有過多的耦合,隨著客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。

如何簡化客戶程式和子系統間的互動介面?如何將客戶程式的演化和內部的子系統的變化之間依賴相互解耦?

意圖為子系統中的一組介面提供乙個一致的介面,facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。

**public class wheel

public void waction2()

}public class engine

public void eaction2()

}public class bodywork

}public class controler

}改進...

internal class wheel

public void waction2()

}internal class engine

public void eaction2()

}internal class bodywork

}internal class controller

}public class tankfacade

public void stop()

public void run()

}uml

要點從客戶程式的角度來看,facade模式不僅簡化了整個元件系統介面,同時對於元件內部與外部客戶程式來說,從某種程式上也達到了一種解耦的效果,內部子系統的任何變化不會影響到facade介面的變化。

facade設計模式更注重從架構的層次去看整個系統,而不是單個類的層次。facade很多時候更是一種架構設計模式。

注意區分facade模式、adapter模式,bridge模式與decorator模式。

facade模式注重簡化介面與其實現。

adapter模式注重轉換介面。

bridge模式注重分離介面與實現。

decorator模式注重穩定介面的前提下為物件擴充套件功能。

結構型模式 外觀 facade

為子系統中的一組介面提供乙個一致的介面,facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用.main.cc include include runner club.h design pattern facade runner club two activitys recruit ...

結構型模式 facade 外觀

1.意圖 為子系統中的一組介面提供乙個一致的介面,facade模式定義了乙個高層介面。口使得這一子系統更加容易使用。2.動機 將乙個系統劃分成為若干個子系統有利於降低系統的複雜性。乙個常見的設計目標是使 子系統間的通訊和相互依賴關係達到最小。達到該目標的途徑之一是就是引入乙個外觀 facade 物件...

結構型模式 Facade(外觀)模式

定義 為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。定義角色 outlook功能 每個人都可能有很多郵箱,msn的 網易的 公司的 google的。如果每天都登入各個郵箱收信非常麻煩,而且也可能漏收郵件。所以使用諸如outlook這樣的客戶端...