概念:外观模式为子系统的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更容易被使用。这个模式定义了一个一致的接口,屏蔽了子系统的细节,这让使用者只需要跟这个一致的接口发生调用,从而不需要关注其子系统内的具体实现细节
项目背景:假如说在一个家庭影院里面,现在有一系列的产品,比如说,DVD、音响、爆米花机、屏幕等,按照传统的形式,在客户端需要调用每个产品的打开、关闭等方法,这样很麻烦不说,后面维护的成本也很高,由此就提出了外观模式,通过暴露一个一致的接口与客户端进行调用即可
UML类图:
话不多说,上代码:
其他几个类都是类似的方法,就不一一截图了
运行结果:
说明:这个设计模式还是很容易的,所以就没有过多的赘述,不过在使用的时候需要注意,这个模式违反了OCP原则,继承和重写都比较麻烦,当然它的优点也很明显,减少了系统的相互依赖,提高了灵活性与安全性,总结:没有一种设计模式可以适用于任何场景,所以在选择设计模式的时候,需要仔细考虑,而且往往设计模式都是成堆出现的,比如说spring框架,里面就用到了工厂模式、单例模式、组合模式、模板模式等设计模式