【设计模式】外观模式
简介
外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使这一子系统更容易使用。
详述
外观模式英文:Facade
外观模式结构图
Facade:外观类,包含所有子系统的实例,并提供更抽象的MethodA和MethodB,MethodA和MethodB内部组合了子系统的实现,客户只需要了解MethodA和MethodB。
SubSystemXXX:子系统,真正的功能实现,需要对客户屏蔽。
使用外观模式的时机
1.设计的初期,将不同的两个层分离,比如MVC架构,将不同的层之间建立外观Facade,为复杂子系统提供简单的接口,并且大大降低程序之间的耦合。
2.开发阶段,子系统因为不断的重构而变得越发复杂,大多数模式的使用也会产生很小的类,给外部调用者带来了使用上的困难,增加外观Facade提供简单的接口,减少依赖。
3.维护一个大型遗留系统,可能系统已经非常难于维护和扩展,可以提供一个Facade类,为复杂和难以维护的老系统提供一个简单的接口,让新系统与Facade交互,Facade与老系统交互完成遗留的复杂工作。
小纪
工作中用到Facade类的应用,一个话单工具要新增一个月结模块,但老系统的类关系已经很复杂了,难以新增功能,采用Facade模式,Facade代理老系统的话单,新增一个月结功能,这个模式很实用,也很朴实,可能没有学过设计模式,但不经意间已经应用了。