Facade (外觀模式) 是軟體開發中很常見的方式,有些時候,因系統初期沒有好好規劃架構,導致當系統越來越複雜時,內部類別依賴性高,查找錯誤難度也變高。
此時常見的初步重構方式便是將系統切分為多個子系統,子系統間盡量降低依賴性,子系統內允許物件擁有較緊密關聯。
基本介紹
外觀模式(Facade pattern),是軟體工程中常用的一種軟體設計模式,它為子系統中的一組介面提供一個統一的高層介面,使得子系統更容易使用
其實 Facade 的概念非常單純,以下這張圖可以概括此 Pattern 想做的事情,提供一個給子系統外部存取的介面 (下圖綠色處),讓外部對於子系統內元件的相依性降低。

套用步驟
如同 Teddy 在搞笑談軟工中提到的一樣,其實步驟非常簡單
- 定義 Facade
- 修改 Client 端直接呼叫的程式碼,改成呼叫 Facade
使用情境
- 系統設計初期,規劃資料存取層、業務邏輯層與表示層的層與層之間建立 Facade,為複雜的子系統提供簡單介面供外部使用。
- 重構舊的大型系統時,直接對舊系統做修改有一定風險,此時新功能可以套用 Facade 產生的介面,而原有程式可以再慢慢移植到新的介面上供外部使用。