-
定义
定义一个统一的高层接口,来实现子系统一系列接口的调用;
-
角色
- 外观角色:与外界交互的角色
- 子系统角色:子系统的具体实现
-
应用场景
- 工具类、封装类
controller
与前端交互、controller
调用service
,service
调用dao
层,service
、controller
都属于外观角色;- 统一网关
zuul
-
源码中的应用
spring
的JdbcUtils
类tomcat
的RequestFacade
类。整合其他类的功能Mybatis
的Configuration
类。对关键组件封装
-
优缺点
- 优点:
- 外界不需要连接太多子系统,简化操作,更加安全
- 满足最少知道原则
- 缺点
- 子系统发生改变,门面类可能需要修改,一定情况下不符合开闭原则
- 优点:
-
示例
- UML
- 时序图