設計模式 外觀者模式

2021-10-02 09:25:08 字數 838 閱讀 5944

外觀模式(facade),也叫「過程模式:外觀模式為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用;

外觀模式通過定義乙個一致的介面,用以遮蔽內部子系統的細節,使得呼叫端只需跟這個介面發生呼叫,而無需關心這個子系統的內部細節;

外觀類(facade): 為呼叫端提供統一的呼叫介面, 外觀類知道哪些子系統負責處理請求,從而將呼叫端的請求**給適當子系統物件;

呼叫者(client): 外觀介面的呼叫者;

子系統的集合:指模組或者子系統,處理 facade 物件指派的任務,他是功能的實際提供者;

例如在虛擬機器中,我們需要依次啟動mysql,redis,tomcat,nginx;我們可以把啟動這些程式的命令放在乙個檔案,然後只需執行這個檔案,各種程式就會跑起來;這種就是外觀者模式,這個執行命令的檔案就是我們所說的外觀者;

外觀模式對外遮蔽了子系統的細節,因此外觀模式降低了客戶端對子系統使用的複雜性;

外觀模式對客戶端與子系統的耦合關係 - 解耦,讓子系統內部的模組更易維護和擴充套件;

通過合理的使用外觀模式,可以幫我們更好的劃分訪問的層次;

當系統需要進行分層設計時,可以考慮使用 facade 模式;

在維護乙個遺留的大型系統時,可能這個系統已經變得非常難以維護和擴充套件,此時可以考慮為新系統開發乙個facade 類,來提供遺留系統的比較清晰簡單的介面,讓新系統與 facade 類互動,提高復用性;

不能過多的或者不合理的使用外觀模式,使用外觀模式好,還是直接呼叫模組好。要以讓系統有層次,利於維護為目的。

設計模式 外觀模式

外觀模式,我的理解就是將複雜的類進行重新封裝,將簡單的介面呈現出來,降低呼叫端和實際類的耦合性。拿 大話設計模式 上邊關於 和 的例子來說。對於不入門的股民來說,交易有些過於龐大,需要學習的東西很多,如果沒整明白就進行投資,很容易賠錢的。很多剛入 的股民都賠的很慘。而買 有提出了乙個新的觀念,我們買...

設計模式 外觀模式

何為外觀模式?外觀模式 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得一子系統更加容易使用。它是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和 各子系統的演化,這種過多的耦合面臨很多變化的挑戰。uml類圖 乙個...

設計模式 外觀模式

外觀模式說白了就是為一組介面提供乙個一致的介面。例如 定義三個類a b c,每個類各定義乙個方法。class a pubic void showa cout a showa pubic void showb cout b showb pubic void showc cout c showc 定義乙...