本文介绍了GoF中的外观模式。
模式推演
当需要简化复杂系统的调用时:
例如我们回到家,希望门自动打开,空调自动打开,电视机也自动打开,我们需要调用三个不同对象的方法,但是其实可以对这一步骤进行简化,用一个接口直接执行这三个功能,而我们只需要调用这一接口即可:
1 | void reachHome(){ |
这种提供统一接口的设计模式称为外观模式,能让客户只跟封装好的接口打交道,减少对象之间的相关依赖关系,从而更便于维护。
OO原则(最少知识):只和你的密友谈话。
遵行最少知识原则的设计标准为:尽可能不要调用从另一个调用中返回的对象的方法。
例如:
1 | public float getTemp(){ |
应该改成:
1 | public float getTemp(){ |
定义
外观模式(Facade Pattern):提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
类图:
外观模式与适配器模式的区别在于:外观只是简化接口,客户在有必要的情况下,依然可以使用原来的接口,而适配器是转换接口,客户只能使用适配器的接口。