跳到主要内容

外观模式(Facade)

定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

类型: 结构型

类图:

image-20210512094237602

组件说明:

  • Facade:外观类,知道哪些子系统类负责处理请求,将客户的请求代理给适合的子系统对象
  • SubSystem:子系统类集合,实现子系统的功能,处理Facade对象指派的任务。对Facade没有任何引用

适用场景:

  • 子系统相对独立
  • 预防低水平人员带来的风险
  • 为复杂模块或子系统提供外界访问的模块

应用实例:

  • 为复杂的老系统使用外观模式,提供Facade类设计简单接口
  • MVC三层模型
  • 医院挂号

优点:

  • 减少系统相互依赖
  • 提高灵活性
  • 提高了安全性

缺点:

  • 不符合开闭原则,如果要改东西很麻烦,继承和重写都不适合