外观,啥叫外观,就是一件东西看着是什么样子。抽象到程序可以看做是一个类,一个方法,一个接口你能看到的样子。外观模式的好处是提供一致的界面,界面不是指ui。客户端需要调用某个功能,而这个功能的实现可能会牵涉到其他的模块才能完成这个功能。那么客户端如果去组织这些模块的关系就会带来维护的问题,假如某个模块变化了,客户端代码很可能就会跟着调整。若采用外观模式就可以避免这个问题,客户端通过一个入口即可完成某个功能的调用,这样这个入口隔离了客户端与各个模块之间的交互,大大降低耦合度。一个图来形容比较明朗:
这个图描述了外观模式的样子,Facade可以是一个方法或接口,Facade是属于系统的,不是客户端的。这样客户端通过这个Facade通道就可以使用某个功能了。外观模式组织模块内部间的关系对外提供统一的界面,降低耦合度。看完书就理解那么多