源码地址:https://github.com/Afengzi/design-pattern/tree/master/src/main/java/com/afengzi/design/facade
客户端调用服务端的一个接口做某一件事情时,可能需要在开始前调另外一些接口做预热,在最后还要调用一些接口清理资源。客户端调一个接口还需要关注其他的一堆接口,这是一个不友好的接口,同时也是一个垃圾的设计。
遇到这种情况,需要提供一个外观类,把预热的功能和资源清理的功能封装起来,以简化接口,对子系统的使用。但这些接口对外还是暴漏的,让客户端还是可以访问底层服务的。
外观模式:提供一个统一的接口,用来访问子系统的一群接口。外观类定义了一个更高层的接口,让子系统使用更方便。同时这些底层的接口还提供对外访问。
外观模式的意图是简化接口,让子系统更易于使用,访问更简单。
很好的体现出OO语言的优点:封装