首页 > 代码库 > 【设计模式】外观模式

【设计模式】外观模式

简介

外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使这一子系统更容易使用。

详述

外观模式英文:Facade

外观模式结构图

 

 

  Facade:外观类,包含所有子系统的实例,并提供更抽象的MethodA和MethodB,MethodA和MethodB内部组合了子系统的实现,客户只需要了解MethodA和MethodB。

SubSystemXXX:子系统,真正的功能实现,需要对客户屏蔽。

使用外观模式的时机

1.设计的初期,将不同的两个层分离,比如MVC架构,将不同的层之间建立外观Facade,为复杂子系统提供简单的接口,并且大大降低程序之间的耦合。

2.开发阶段,子系统因为不断的重构而变得越发复杂,大多数模式的使用也会产生很小的类,给外部调用者带来了使用上的困难,增加外观Facade提供简单的接口,减少依赖。

3.维护一个大型遗留系统,可能系统已经非常难于维护和扩展,可以提供一个Facade类,为复杂和难以维护的老系统提供一个简单的接口,让新系统与Facade交互,Facade与老系统交互完成遗留的复杂工作。

小纪

工作中用到Facade类的应用,一个话单工具要新增一个月结模块,但老系统的类关系已经很复杂了,难以新增功能,采用Facade模式,Facade代理老系统的话单,新增一个月结功能,这个模式很实用,也很朴实,可能没有学过设计模式,但不经意间已经应用了。