facade模式通過將複雜子系統封裝在單個介面物件中來促進子系統與其可能的許多客戶端的分離。這減少了子系統之間的通訊和依賴性,並降低了系統的複雜性。
立面圖案屬於結構模式。
根據 gamma等人的design patterns,這種模式的目的是 :
為子系統中的一組介面提供統一介面。facade定義了乙個更高階別的介面,使子系統更易於使用。facade使用更簡單的介面包裝複雜的子系統。下圖顯示了立面圖案的結構。
圖1:立面圖案結構
在這裡,所有的複雜性都被外立面包裹著。這是乙個使用乙個精心設計的api包裝設計不佳的api集合的示例。
需要注意的一件重要事情是,可以有多個外觀類。
這是另乙個更實際的例子來說明立面圖案。
圖2:立面圖案結構
在這裡,參與者是:
讓我們考慮乙個製造汽車的系統。在創造一輛完整的汽車時,有許多複雜的工藝和零件。所有這些都可以包裝在乙個facade類中,如下面的類圖所示。
圖3:汽車製造系統
首先,讓我們建立乙個複雜的過程。
//系統的複雜部分
公共 類 carbody
}
公共 類 carengine
}
公共 類 caraccessories
}現在,讓我們將這些複雜的流程包裝到facade類中。
/ **
* facade類包裝複雜的部分
* /
公共 課 ca***cade
public void createcar()
}現在,客戶可以使用這個外觀來建立汽車,而無需了解潛在的複雜性。
/ **
*客戶
* /
公共 類 申請
}該計畫的輸出是:
創造 一輛 車 ......
汽車 引擎 已 設定。
汽車 車身 的 設定。
汽車 配件 已 設定。
你的 車 是 準備就緒。您可以看到客戶如何不關心汽車的內部複雜性,而是關注汽車的行為。
這篇文章用乙個簡單的例子談到了facade模式的概括形式,作為gof模式之一。
結構模式 組合模式
組合模式 composite pattern 組合多個物件形成樹形結構以表示具有 整體 部分 關係的層次結構。組合模式對單個物件 即葉子物件 和組合物件 即容 器物件 的使用具有一致性,組合模式又可以稱為 整體 部分 part whole 模式,它是一種物件結構型模式。將物件組合成樹形結構以表示部分...
Facade 結構模式
為子系統中的一組介面提供乙個一致的介面,facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。1 設計初期階段,應該有意識的將不同層分離,層與層之間建立外觀模式。2 開發階段,子系統越來越複雜,增加外觀模式提供乙個簡單的呼叫介面。3 維護乙個大型遺留系統的時候,可能這個系統已經非...
結構模式討論
1 adapter和bridge有一些共同特徵。adapter解決兩個已有介面的不匹配問題。bridge對抽象介面和實現進行橋接。為使用者提供乙個穩定的介面。facade定義乙個新的介面,adapter復用乙個原有介面 2 composite decorator proxy composite與de...