门面模式/外观模式(十九)
一、定义
门面模式(FacadePattern)也叫做 外观模式,是一种比较常用的封装模式,其定义如下:
要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
二、示意图
简单地说,门面对象是外界访问子系统内部的唯一通道,外部模块不用管子系统内部是多么复杂以及如何实现的。
1. Facade 门面角色
客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任。一般情况下,门面角色不参与子系统的任何业务逻辑。
2. subsystem 子系统角色
可以有一个或者多个子系统,子系统无需知道门面角色的存在。
三、优点
- 减少系统之间的相互依赖,提高了灵活性
外界系统不需要深入到系统内部,而只需要依赖门面即可。系统内部也可以自由活动了。 - 提高了安全性
外界系统只能访问到门面类提供的方法,子系统内部的逻辑和业务都被保护起来了。
四、使用场景
- 为一个复杂模块或者子系统提供一个供外界访问的统一接口
- 子系统相对独立——外界对子系统只需要黑箱操作即可
例如一个复杂的SDK,就可以创建一个门面类,对外提供一个统一的访问方式。
查看更多:设计模式分类以及六大设计原则