1、 Facade模式簡介
Façade在建築領域的意思是:(掩飾真相的)門面,也就意味着,如果你想探究更細節的真相就需要經過Façade。
《設計模式》一書中對Façade模式的意圖是這樣敘述的:
爲子系統中的一組接口提供一個統一接口。(提供一個門面,掩飾真相。)Façade模式定義了一個更高層次的接口,使子系統更加容易使用。
2、 Facade模式關鍵特徵
意圖 |
希望簡化原有系統的使用方式。需要定義自己的接口 |
問題 |
只需要使用某個複雜子系統的子集,或者,需要以一種特殊的方式與子系統交互 |
解決方案 |
Façade爲原有系統的客戶提供了一個新的接口 |
參與者(接口)與協作者(子系統) |
爲客戶提供簡化接口,使子系統更容易使用 |
效果 |
Façade模式簡化了對所需子系統的使用過程。但是,由於Façade並不完整,因此客戶可能無法使用某些功能。 |
實現 |
1、定義一個(或多個)具有所需接口的新類 2、讓新的類使用原有的子系統 |
3、 Façade模式的應用
1) 不需要使用一個複雜子系統的所有功能,而且可以創建一個新的類,包含訪問系統的所有規則。如果只需要使用系統的部分功能(這是通常的情況),那麼你爲新類所創建的API將比原系統的API簡單得多。
2) 希望封裝或者隱藏原系統。
3) 希望使用原系統的功能,而且還希望增加一些新的功能。
4) 編寫新類的成本小於所有人學會使用或者未來維護原系統上所需的成本。