外观模式
外观模式和适配器模式一样,都实现了接口改变,适配器模式是让一个接口转化成另外一个接口,而外观模式是让接口变得更简单。
先来看一下需求:
外观模式没有封装子系统的类,外观只是提供一个统一的接口,对子系统的类进行调度。如果有必要,还是可以直接操作子系统的类,而不是通过外观。外观让子系统的类使用起来更方便。我们也可以根据需要为子系统创建多个外观。
外观不只是简化了接口,也将客户从组件的子系统中解耦。外观和适配器可以包装许多类,但是外观的意图是简化接口,而适配器的意图是将接口转化成不同的接口。
适配器模式是“改变”接口符合客户期望,而外观模式是给子系统提供一个简化的接口。
外观模式的定义:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层的接口,让子系统更容易使用。
代码就不放了,非常简单,就是建立一个类,类中的各个方法封装了对子系统的使用逻辑。
此外,这个设计模式引出了一个面向对象的设计原则:最少知识原则——最少知识原则的定义是只和你的密友交谈。这个原则希望我们在系统的设计中不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。如果许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,它需要花许多成本维护,也会因为太负责而不容易被他人了解。
这个原则指导我们如何避免赢得太多对象和影响太多对象——一般来说,就任何对象而言,我们只应该调用属于以下范围的方法:
①该对象本身
②被当作方法的参数而传递进来的任何对象
③此方法所创建或实例化的任何对象
④对象的任何组件
在OO中,只有一个朋友是一件好事情!有多个朋友意味着有多个依赖,各种依赖错综复杂,就会导致“牵一发而动全身”。