常用設計模式之外觀模式

1.問題描述

如何實現讓子系統外部的客戶端在使用子系統的時候,既能簡單地使用子系統內部模塊的功能,而又不用客戶端去與子系統內部的多個模式交互呢?

2.模式引入

爲子系統中的一組接口提供一致的界面,定義一個高層接口,這個接口使得這一子系統更加容易使用。這種模式就是外觀模式

3.模式結構



3.1 Facade:定義子系統的多個模塊對外的高層接口,通過需要調用內部多個模塊,從而把客戶端的請求代理給適當的子系統對象。

3.2 模塊:接受Facade委派,真正實現功能,各個模塊之間可能有交互。

4.外觀模式實例


5.外觀模式本質

封裝交互,簡化調用

6.何時選用外觀模式

  • 如果爲一個複雜的子系統提供一個簡單接口的時候,可以考慮使用外觀模式,使用外觀對象來實現大部分客戶端需要的功能,從而簡化客戶端的使用;
  • 如果想讓客戶端和抽象類的實現部分鬆散耦合時,可以考慮使用外觀模式,使用外觀對象來將這個子系統與它的客戶端分離開,從而提高子系統的獨立性和可移植性;
  • 如果要構建多層結構系統,可以考慮使用外觀模式,使用外觀對象作爲每層的入口,這樣可以簡化層間調用,也可以鬆散層次之間的依賴關係。


發佈了37 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章