设计模式 —— 外观模式

Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。

GoF《设计模式》中说道:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

缺点就是,外观模式违反了开闭原则。

案例:

公司的web站点,每晚都要将其库存信息传递至公司内的不同系统。不过它是一个比较老的系统,并且只能处理大写的字符串。

具体操作: CD 对象 -> 属性转大写 -> 传输XML。

创建实例

 

普通调用,如果需求更对那么每次调用的时候都需要写N多行代码。如下:

外观模式,把上面代码封装起来,其他地方调用时候只需一行代码即可。如下: