外观模式(Facade)
定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
类型: 结构型
类图:

组件说明:
- Facade:外观类,知道哪些子系统类负责处理请求,将客户的请求代理给适合的子系统对象
- SubSystem:子系统类集合,实现子系统的功能,处理Facade对象指派的任务。对Facade没有任何引用
适用场景:
- 子系统相对独立
- 预防低水平人员带来的风险
- 为复杂模块或子系统提供外界访问的模块
应用实例:
- 为复杂的老系统使用外观模式,提供Facade类设计简单接口
- MVC三层模型
- 医院挂号
优点:
- 减少系统相互依赖
- 提高灵活性
- 提高了安全性
缺点:
- 不符合开闭原则,如果要改东西很麻烦,继承和重写都不适合