外观模式
定义
外观模式(Facade Pattern),也叫做门面模式,外观模式的原始定义是:为子系统中的一组接口提供统一的接口,它定义了一个更高级别的接口,使子系统更易于使用。
外观模式,是一种通过多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。
门面模式有点类似迪米特法则(最少只是原则)和接口隔离原则:两个有交互的系统,只暴露有限的必要的接口。

模式原理
- 外观角色(Facade): 为多个子系统对外提供一个共同的接口。
提示
外观角色中可以知道多个相关的子系统中的功能和责任,在正常情况下,它将所有 从客户端发来的请求委派到相应的子系统,传递给相应的子系统对象处理。
- 子系统角色(SubSystem): 实现系统的部分功能,客户端可以通过外观角色进行访问。
提示
每一个子系统可以是一个类也可以是多个类的集合,每一个子系统都可以被客户端直接调用,或者被外观角色调用,子系统并不知道外观的存在,对于子系统而言,外观角色仅仅是另一个客户端而已。

应用实例
智能家电控制:通过智能音响来控制室内的灯、电视、空调,本来每个设备都需要进行独立的开关操作,现在通过智能音响完成对这几个设备的统一控制。
