23種設計模式(十二)介面隔離之門面模式

小小何先生發表於2020-10-04

  介面隔離模式:在元件構建過程中,某些介面之間直接的依賴常常會帶來很多問題、甚至根本無法實現。採用新增一層間接(穩定)介面,來隔離本來互相緊密關聯的介面是一種常見的解決方案。

  軟體設計的很重要一個思路就是間接的思想。

  • 系統間耦合的複雜度

上述A方案的問題在於元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。

  好的方案是提出一層間接層Facade

模式定義

  為子系統中的一組介面提供一個一致(穩定)的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用(複用)。

要點總結

  從客戶程式的角度來看,Facade模式簡化了整個元件系統的介面,對於元件內部與外部客戶程式來說,達到了一種“解耦”的效果–內部子系統的變化不會影響到Facade介面的變化。

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

  Facade設計模式並非一個集裝箱,可以任意地放進任何多個物件。Facade設計模式中元件的內部應該是“相互耦合關係比較大的一系列元件“,而不是一個簡單的功能集合。對外鬆耦合,對內高內聚。

相關文章