一、 Facade(外觀)模式
為了子系統中的一組接口提供一個一致的界面,Façade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
Façade模式:關鍵特征
意圖
希望簡化現有系統的使用方法。你需要定義自己的接口
問題
只需要使用一個復雜系統的一個子集。或者,需要用一種特殊的方式與系統交互。
解決方案
Façade向客戶展現使用現有系統的一個新的接口
參與者和協作者
向客戶展現一個定制的接口,讓客戶更容易地使用現有系統
效果
Façade模式簡化了對所需子系統的使用。但是,由于Façade并不完整,因此某些功能對于客戶是不可用的
實現
Ø 定義一個(或一組)新的類來提供所需的接口
Ø 讓新的類使用現有的系統
圖1.1
Façade模式:實例1
如圖1.1,original_system有多個函數,client只需要用到其中的funA
Façade向client展現使用original_system的一個新的接口fun
Façade模式簡化了對所需子系統的使用。但是,由于Façade并不完整,因此funB、funC對于client是不可用的
Ø 定義一個新的類Facade來提供所需的接口
Ø 讓新的類Facade使用現有的系統original_system
如圖1.2
圖
Façade模式:實例2
如圖1.3,有多個類,客戶(main函數)只需要使用順序使用他們
Façade向客戶展現使用多個類的一個新的接口fun
Façade模式簡化了對所需子系統的使用。
Ø 讓新的類Facade使用現有的多個類
如圖1.4
圖1.3
圖1.4