Demo:以編譯器子系統的設計爲例,說明外觀模式的思想:
子系統類劃分:Scanner, Parser, ProgramNode, BytecodeStream, ProgramNodeBuilder
要求:對普通用戶提供一個高層的,單一而簡單的編譯子系統接口
對高級專業的用戶提供底層功能,能夠直接訪問具體的子系統類。
設計:
Compiler類(關鍵),其職責爲兩點:
1)爲用戶屏蔽子系統,提供一個高層的簡單的使用接口;
2)不徹底隱藏實現編譯功能的那些子系統類,使得少數懂的如何使用底層功能的人能夠調用這些功能。
適用性:
在遇到如下狀況使用Facade模式:
- 爲一個複雜子系統提供一個簡單接口。
- 客戶程序與抽象類的實現部分之間存在很大的依賴性。
- 當你須要構件一個層次結構的子系統時,使用facade模式定義子系統中每層的入口點。若是子系統之間是相互依賴的,能夠讓它們僅經過facade進行通信,從而簡化了它們之間的依賴關係。
結構:ui