模式簡介:
 意圖--一個一致的高層接口
 Facade模式的意圖:為了子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
Facade模式:關鍵特征
           意圖       希望簡化現有系統的使用方法。你需要定義自己的接口。
           問題       只需要使用一個復雜系統的一個子集。或者,需要用一種特殊的方式與系統交互。
           解決方案   Facade向客戶展現使用現有系統的一個新的接口。
           參與者與   向客戶展現一個定制的接口,讓客戶更容易地使用現有系統。
           協作者 
           效果       Facade模式簡化了對所需子系統的使用。但是,由于Facade并不完整,因此某些功能對于客戶可能是不可用的
           實現       定義一個(或一組)新的類來提供所需的接口
                 *讓新的類使用現有的系統

1)Facade模式的變體:減少客戶必須處理的對象數量
           2)Facade模式的變體:用新的程序對現有功能進行補充
           3)Facade模式的變體:一個“封裝”層
              幾個需要包裝原有系統的理由:
               *跟蹤對系統的使用----強迫所有客戶通過Facade使用原有系統,然后就可以很容易地監控對系統的使用。
               *改變系統----我可能需要在未來改變我們的系統。如果把原有系統設計成Facade類的私有成員,那么只需作最少的工作就能切斷
               一個新的系統。當然,我仍然需要做一些重要的工作,但至少我只要改變一個地方(Facade類)的代碼。