Facade

外观模式

Posted by Max on September 15, 2018

定义

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

外观模式是结构型模式之一。

UML类图

facadepattern

  • Facade 外观类

    需要了解所有子系统的方法或属性,进行组合,将客户的请求代理给适当的子系统对象。

  • Subsystem Classes 子系统类集合

    实现子系统的功能,处理 Facade 指派的任务。

    子系统类中没有 Facade 的任何信息,即没有对 Facade 对象的引用。

应用场景

设计初期阶段,应该要有意识的将不同的层分离。比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观 Facade,为复杂的子系统提供一个简单的接口,降低耦合性。

开发阶段,为复杂子系统添加外观 Facade,提供简单接口,减少它们之间的依赖。

需要在一个遗留的大型系统上开发新需求时,也可以为新系统开发一个外观 Facade 类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与 Facade 对象交互,Facade 与遗留代码交互所有复杂的工作。

参考

  1. 程杰《大话设计模式》