门面模式
也叫外观模式,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,其本质是封装交互,简化调用
对外统一接口
核心概念
- 外观角色 客户端可以调用这个角色的方法,此角色知晓子系统的功能和职责,会将客户端的请求委派到相应的子系统去
- 子系统角色 可以同时有一个或多个子系统,子系统并不知道外观角色的存在,对于子系统而言,外观角色也只是一个客户端而已
1 | public class SubSysOne{ |
优缺点
优点
- 实现了子系统和客户端之间的松耦合
- 客户端屏蔽了子系统组件,减少了客户端需要处理的对象数目
缺点
- 过多的Facade容易让人迷惑
使用场景
- 为一个复杂的模块或子系统提供一个供外界访问的接口,便于它的使用
- 让客户程序和抽象类的实现部分松散耦合,将子系统与客户端分离开
- 构建多层结构的系统,使用外观对象作为每层的入口
- 为一组类提供一个简单的接口