设计模式-- 门面模式
门面模式,也叫外观模式,他提供一个统一的接口来访问子系统的一群接口,属于结构设计模式
UML:这就是定义一个统一的接口FacadeService 来访问这一群接口
上图可以看到门面模式主要2个角色:
- (外观角色)Facade;也叫作,门面角色,是系统对外的统一接口,
- 子系统角色; 同时可以拥有多个Payment Qualify Shipping 子系统,而他们不知道 有facade存在
门面模式主要用与,一个复杂模块或者子系统提供一个简洁的对外访问接口,
门面模式优点:
- 简化调用过程,不深入了解子系统,以防对子系统带来的风险
- 减少系统依赖,松散耦合
- 更好的划分访问层次,提高的了安全性
- 遵循迪米特法则
门面模式缺点:
- 当增加子系和扩展子系统的行为时,可能带来未知的风险,
- 不符合开闭原则
门面模式与代理模式:
- 门面模式是特殊的静态代理模式,
- 代理模式:重点在与增强,
- 门面模式:重点在于封装,
【不做增强的代理模式是门面模式,可以这么理解】