文章目录
- 概念
- 例子
- 总结
-
- 优点
- 缺点
概念
外观模式提供了一个接口,用来访问子系统中定义的一堆接口。换句话说,外观模式提供了一个高层接口,使得可以更简便的使用子系统。
现在很多汽车上都有“一键启动”的功能。这个“一键启动”的按钮,就可以理解为外观模式提供的高层接口。汽车中包含了各种各样的子系统,子系统之间也许还有各种各样的关系。
在外观模式中主要包含三个角色:
- 子系统:已有模块或子系统,提供了一系列复杂的接口或功能
- 外观:它了解子系统,并对外暴露一个简单的接口
- 客户:调用外观提供的接口来实现功能,无需了解复杂的子系统
例子
除了上述的汽车的例子,还有一个很合适的例子就是电脑的开机过程。
电脑中包含了CPU、内存、硬盘、显卡、 卡等等硬件,而我们只需要按下电源键就可以使这些硬件启动。很显然,电源键就是外观模式所提供的高层接口。

各种硬件类:
如果没有开机键的话,我们需要这么做:
如果有了开机键,这些都可以交给开机键去做:
开机键:
现在只需要调用开机键的方法即可:
总结
外观模式很好的体现了迪米特法则,即每一个类应该尽量少的知道别的类。拿上面的例子来说,原本我们需要知道CPU、内存等子系统,用了外观模式之后,我们仅需要知道外观模式所提供的接口即可。
优点
将复杂的接口简单化,减少了客户端与接口之间的耦合,提高了安全性。
缺点
可能产生大量的中间类(外观类),一定程度上增加了系统的复杂度。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!