-
定義
定義一個統一的高層接口,來實現子系統一系列接口的調用;
-
角色
- 外觀角色:與外界交互的角色
- 子系統角色:子系統的具體實現
-
應用場景
- 工具類、封裝類
controller
與前端交互、controller
調用service
,service
調用dao
層,service
、controller
都屬於外觀角色;- 統一網關
zuul
-
源碼中的應用
spring
的JdbcUtils
類tomcat
的RequestFacade
類。整合其他類的功能Mybatis
的Configuration
類。對關鍵組件封裝
-
優缺點
- 優點:
- 外界不需要連接太多子系統,簡化操作,更加安全
- 滿足最少知道原則
- 缺點
- 子系統發生改變,門面類可能需要修改,一定情況下不符合開閉原則
- 優點:
-
示例
- UML
- 時序圖