外观模式从字面意思理解就是给外面看到表面现象,也就是说定义一组接口,这边所谓的接口并不是仅仅指interface,而是一种通道,也可以是类的一种方法,给外部的子系统进行使用,让子系统更容易使用系统,
比如,在组装电脑的时候,我可能要去很多地方买cpu、主板、硬盘等等,这会让人觉的很麻烦,所以我们就直接交给了那种负责组装的公司,让他们去跑,这样我们就很简单的完成了电脑的组装了,这个组装公司就是一个外观的体现
外观模式只是将子系统的功能进行了包装给客户端使用,并没有增加新的功能,也不建议添加新的功能
外观模式的本质是;'封装交互,简化调用,
使用外观模式的情况
1、当你的子系统比较复杂时,这个时候可以提供外观模式,给客户端调用,减少客户端的操作复杂度,
2、当客户程序和抽象类想要分离时,可以使用外观模式,将客户与子系统分离,,提高子系统的独立性和可移植性
3、当构建多次结构的系统,可以使用外观模式,做为每一层的人口,简化层间的调用,松散层次之间的依赖关系