设计模式读书笔记-----外观模式前面介绍的适配器模式(设计模式读书笔记-----适配器模式)讲的是如何将一个接口转换成客户所需要的另一个接口,它的目的在于解决接口的不兼容性问题
现在这里有这样一个模式,它的目的在于如何简化接口,它可以将多个类的复杂的一切隐藏在背后,只显露出一个干净美观的外观
晚上睡觉之前,你总是喜欢看电视,在你进入卧室的时候你需要完成以下几个步骤:打开电灯、打开空调、放心银幕(假如你家有)、打开电视通过这么些繁琐的步骤后你终于可以看电视了,但是你要睡觉了呢
又要去进行繁琐的关闭动作
这里你就需要一个外观模式了,通过实现一个更加合理的接口外观类将这些动作都包装起来,实现一键“看电视”、一键“关电视”
这就是外观模式的动机一、模式定义所谓外观模式就是提供一个统一的接口,用来访问子系统中的一群接口
外观模式定义了一个高层接口,让子系统更容易使用
如下图,是使用外观模式后将子系统的使用变得更加简单
在引入外观模式后,客户只需要与外观角色打交道,客户与子系统的复杂关系有外观角色来实现,从而降低了系统的耦合度
二、模式结构外观模式包含如下两个角色:Facade:外观角色SubSystem:子系统角色三、模式实现场景就是上面那个“睡觉看电视”的场景
实例的UML图首先是四个组件(电视、电灯、空调、银幕)1publicclassTelevision{2publicvoidon(){3System
println("打开了电视
");4}56publicvoidoff(){7System
println("关闭了电视
");8}9}1publicclassLight{2publicvoidon(){3System
println("打开了电灯
");4}56publicvoidoff(){7System
println("