外觀模式
定義
爲子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
外觀模式的目的
不是給子系統添加新的功能接口,而是爲了讓外部減少與子系統內多個模塊的交互,鬆散耦合,從而讓外部能夠更簡單的使用子系統。
優缺點
- 優點
- 鬆散耦合
- 簡單易用
- 更好的劃分訪問的層次
- 缺點
- 過多的或者是不太合理的Facade也容易讓人迷惑。到底是調用Facade好還是直接調用模塊好。
本質
封裝交互,簡化調用
何時選用外觀模式
- 如果你希望爲複雜的子系統提供一個簡單接口的時候,可以考慮使用外觀模式。使用外觀對象對實現大部分客戶需要的功能,從而簡化客戶的使用。
- 如果想要讓客戶程序和抽象類的實現部分鬆散耦合,可以考慮使用外觀模式,使用外觀對象來將這個子系統與它的客戶分離開來,從而提高子系統的獨立性和可移植性。
- 如果構建多層結構的系統,可以考慮使用外觀模式,使用外觀對象作爲每層的入口,這樣就可以簡化層間調用,也可以鬆散層次之間的依賴關係。