Version: Next

Facade外观模式

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

源发问题

客户端使用一个复杂子系统功能时,如果是针对子系统中的每个类的接口进行调用,则会与子系统形成复杂的耦合关系

解决方案

定义一个外观类Facade,客户代码通过它与子系统进行交互,外观类作为客户端的调用提供统一的接口

UML类图

image-20200414215847750

代码

优缺点

  • 优点 为子系统提供一致的访问入口,这个入口使得这一子系统更加容易使用,并且屏蔽了子系统内部的复杂逻辑,从而实现了子系统和客户端代码的弱耦合
  • 缺点 Facade有可能变为胖接口而与接口隔离原则相悖