外观模式

Posted by 程序亦非猿 on 2016-07-25

设计模式专题系列: 设计模式

外观模式(Facade)

外观模式: 提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用

或者说:将一个类或数个类的复杂的一切都隐藏在背后,只显露出一个感觉美好的外观。

外观模式创建一个接口简化而统一的类,用来包装子系统中的一个或者多个复杂的类,而暴露给客户端的是非常简单的接口,让 客户端和子系统解耦

类图

特点

  1. 让接口更简单
  2. 外观提供简化的接口,但依然可以直接使用子系统的类。
  3. 外观可以附加更『聪明的』功能,让子系统更方便。
  4. 外观不只是简化了接口,也 将客户从组件的子系统中解耦
  5. 外观和适配器可以包装许多类,但是外观的意图是 简化接口,而适配器的意图是 将接口转换成不同的接口

要点

  1. 需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观。
  2. 外观将客户从一个复杂的子系统中解耦。
  3. 实现一个外观,需要将子系统组合进外观中,然后将工作委托给子系统执行。
  4. 你可以为一个子系统实现一个以上的外观。