模式簡介:
意圖--一個一致的高層接口
Facade模式的意圖:為了子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
Facade模式:關鍵特征
意圖 希望簡化現有系統的使用方法。你需要定義自己的接口。
問題 只需要使用一個復雜系統的一個子集。或者,需要用一種特殊的方式與系統交互。
解決方案 Facade向客戶展現使用現有系統的一個新的接口。
參與者與 向客戶展現一個定制的接口,讓客戶更容易地使用現有系統。
協作者
效果 Facade模式簡化了對所需子系統的使用。但是,由于Facade并不完整,因此某些功能對于客戶可能是不可用的
實現 定義一個(或一組)新的類來提供所需的接口
*讓新的類使用現有的系統
1)Facade模式的變體:減少客戶必須處理的對象數量
2)Facade模式的變體:用新的程序對現有功能進行補充
3)Facade模式的變體:一個“封裝”層
幾個需要包裝原有系統的理由:
*跟蹤對系統的使用----強迫所有客戶通過Facade使用原有系統,然后就可以很容易地監控對系統的使用。
*改變系統----我可能需要在未來改變我們的系統。如果把原有系統設計成Facade類的私有成員,那么只需作最少的工作就能切斷
一個新的系統。當然,我仍然需要做一些重要的工作,但至少我只要改變一個地方(Facade類)的代碼。