facade模式也叫外觀模式
在《設計模式》一書中他是這樣敘述的:
為子系統中的一組介面提供乙個統一的介面。facade模式定義了乙個更高的介面,使子系統更加容易使用。facade模式的關鍵特徵
意圖:希望簡化原有系統的使用方法,需要定義自己的介面。
問題:只需要使用某個複雜系統的子集,或者,需要以一種特殊的方式與系統互動。
解決方案:facade為原有系統的客戶提供了乙個新的介面。
效果:facade模式簡化了對所需子系統的使用過程。但是,由於facade並不完整,因此客戶可能無法使用完整的功能。
實現:定義乙個或多個具備所需介面的新類。
讓新的類使用原有的系統。
設計模式的通用結構圖:
其實,facade模式還可以增加新的功能,就是在原有的系統上增加功能,還有就是可以隱藏或封裝原來系統的部分功能。避免使用者與複雜的系統接觸,方便使用。
舉例說明:
假設現在有一頭大象,你要通過乙個系統把他放到冰箱裡,該系統有三步:
1、開啟冰箱門
2、放大象到冰箱裡
3、關上冰箱門
現在有a,b使用者使用該系統,如圖:
從上圖大家可以看出,使用者操作起來相當複雜,如果還有其他的功能如設定冰箱的溫度等,操作起來就更複雜了。現在在該系統和使用者之間增加一層。
再看應用了設計模式之後:
怎麼樣,是不是簡單多了,既方便使用者使用,又達到了系統封裝,而且增加一些功能也不影響使用者的使用,如果開始的架構,增加了功能則又要到使用者端來呼叫,非常不方便。
小結facade模式可以應用於:
1、不需要使用乙個複雜系統的所有功能,而且可以建立乙個新的類。
2、希望封裝或者隱藏原來的系統。
3、希望使用原來系統的功能,而且還希望增加一些新的功能。
4、編寫新類的成本小於所有人學會或者未來維護原系統上所需的成本。
門面模式 facade
門面模式定義 為子系統中的一組介面提供了乙個一致的介面,facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。現代的軟體系統都是比較複雜的,設計師處理複雜系統的乙個常見方法便是將其 分而治之 把乙個系統劃分為幾個較小的子系統。如果把醫院作為乙個子系統,按照部門職能,這個系統可以劃分...
門面 Facade 模式
外部與乙個子系統的通訊必須通過乙個統一的門面 facade 物件進行,這就是門面模式。門面模式要求乙個子系統的外部與其內部的通訊必須通過乙個統一的門面 facade 物件進行。門面模式提供乙個高層次的介面,使得子系統更易於使用。一,結構 門面 facade 角色 客戶端可以呼叫這個角色的方法。此角色...
門面模式(Facade)
外部與乙個子系統的通訊必須通過乙個統一的門面 facade 物件進行,這就是門面模式。醫院的例子 用乙個例子進行說明,如果把醫院作為乙個子系統,按照部門職能,這個系統可以劃分為 門診 劃價 化驗 收費 取藥等。看病的病人要與這些部門打交道,就如同乙個子系統的客戶端與乙個子系統的各個類打交道一樣,不是...