使用的動機:一、在我們編寫**的時候,大部分都會將不同的層次細分,那麼增加乙個中間者facade,可以減少各層次之間的耦合,方便呼叫。
二、在系統的開發中,**量增加,各個類間的耦合,可以在其中增加乙個外觀facade,減少各自的依賴。
三、在重構粗糙高度複雜的遺留**時,在不了解次模組下的各自細節,直接進行擴充套件或者修改會比較困難,使用外觀facade作為遺留**的互動,新的功能在外觀基礎上進行開發會相對簡單一些。
總而言之,外觀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 定義乙...