门面模式(Facade)
一:定义
提供一个统一的接口代表子系统内部的一组接口。门面模式提供一个高层的接口,使得子系统更易于使用。
二:经验
2.1 window系统的软关机(不是直接断电)是一个过程, 它自己背后会做很多事情,例如关闭窗口、保存未保存的文件和关闭电源等等。但是我们只管点击一个关机按钮,系统底下做些什么和以什么顺序执行我们不需要知道,这里的关机按钮就是一个门面。
2.2 我们经常去政府部门办理一些业务, 通常有一个服务窗口接待我们, 我们准备好一些资料交付给服务窗口然后等待处理结果。至于实际我们的资料要经过多少个部门处理、处理的顺序是怎样的我们不需要了解, 这里的服务窗口就是这个业务的一个门面。
三:结构
这里的子系统复杂程度随实际情况变化,所以图中的子系统部分只是在表述一种概念而已。
四:优缺点
优点:
- 减少系统的相互依赖 客户只与门面交互
- 提高灵活性 封装子系统这一变化部分,只提供门面这一很少会变化的对象
- 提高安全性 客户无法直接接触子系统
缺点:
不符合开闭原则。所以设计时要考虑情况,如果门面改变的概率比较大的话就要谨慎使用门面模式。