為子系統中的一組介面提供乙個一致的介面, facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。
(1)設計初期階段,應該有意識的將不同層分離,層與層之間建立外觀模式。
(2) 開發階段,子系統越來越複雜,增加外觀模式提供乙個簡單的呼叫介面。
(3) 維護乙個大型遺留系統的時候,可能這個系統已經非常難以維護和擴充套件,但又包含非常重要的功能,為其開發乙個外觀類,以便新系統與其互動。
(1)實現了子系統與客戶端之間的松耦合關係。
(2)客戶端遮蔽了子系統元件,減少了客戶端所需處理的物件數目,並使得子系統使用起來更加容易。
這是乙個抽象的示例。乙個客戶通過外觀介面獲取計算機內部複雜的系統資訊。
/* complex parts */
class cpu
public void jump(long position)
public void execute()
}class memory
}class harddrive
}/* facade */
class computer
}/* client */
class you
}
注意區分facade模式、adapter模式、bridge模式與decorator模式。facade模式注重簡化介面,adapter模式注重轉換 介面,bridge模式注重分離介面(抽象)與其實現,decorator模式注重穩定介面的前提下為物件擴充套件功能。
.net 架構中的 façade 模式
結構模式 01 外觀模式(facade)
facade模式的定義 外觀模式隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面,它向現有的系統新增乙個介面,來隱藏系統的複雜性。我們將建立乙個 shape 介面和實現了 shape 介面的實體類。下一步是定義乙個外觀類 shapemaker。shapemaker 類使用實體類來代表使...
結構模式 組合模式
組合模式 composite pattern 組合多個物件形成樹形結構以表示具有 整體 部分 關係的層次結構。組合模式對單個物件 即葉子物件 和組合物件 即容 器物件 的使用具有一致性,組合模式又可以稱為 整體 部分 part whole 模式,它是一種物件結構型模式。將物件組合成樹形結構以表示部分...
結構模式 立面
facade模式通過將複雜子系統封裝在單個介面物件中來促進子系統與其可能的許多客戶端的分離。這減少了子系統之間的通訊和依賴性,並降低了系統的複雜性。立面圖案屬於結構模式。根據 gamma等人的design patterns,這種模式的目的是 為子系統中的一組介面提供統一介面。facade定義了乙個更...