FacadePattern- 门面模式
门面模式
门面模式(Facade Pattern):又被称之为外观模式。门面模式提供了一个统一的接口,这个接口可以用来访问相同子系统或者不同子系统中的一群接口。门面模式使得系统更加容易调用,属于结构型模式。
示例:我们通过多个系统之间的互相调用来举例说明...
子系统 A
SubSystemA.java
子系统 B
SubSystemB.java
假设以上子系统 A、B 的方法不想对所有人都开放,这时我们就需要一个门面类来集成两个子系统,统一并开放接口
门面类
SimpleFacade.java
测试
TestSimpleFacade.java
通过上述例子,大家可能像我一样会有一种“这特么也是设计模式?”的感慨。其实设计模式并不是什么高深的知识,只是前人的一种经验总结而已,可以看到我们通过门面类以后,就不会直接调用子系统,而通过门面类来统一调用。这里门面类和子系统方法是一对一的关系,现在假如我们一个流程里面需要多个子系统的方法共同调用才可以,那么我们就可以稍微改造一下门面类...
重新写一个门面类
Facade.java
测试
TestFacade.java
门面模式适用场景
当各个子系统越来越复杂时,可以提供门面接口来统一调用。
构建多层系统结构时,利用门面对象来作为每层的入口,这样可以简化分层间的接口调用。
门面模式优点
简化了调用过程,调用者无需深入了解子系统,以防给子系统带来风险。
减少了系统间的依赖,松散了耦合度。
将系统划分了层次,提高了安全性。
通过门面类隐藏了各个子系统,使得子系统只对门面类可知,所以遵循了迪米特法则。
门面模式缺点
当增加子系统或者扩展子系统功能时,可能容易带来未知风险。
当我们需要新增或者修改调用逻辑时,需要修改门面类,不符合开闭原则。
版权声明: 本文为 InfoQ 作者【梁歪歪 ♚】的原创文章。
原文链接:【http://xie.infoq.cn/article/645b55076a99b1c874c80418d】。文章转载请联系作者。
评论