Java设计模式—外观模式
本片文章介绍另外一种相对比较简单的设计模式——外观模式(Facade)。GoF中这样描述外观模式:外观模式(Facade)为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。外观模式属于结构型模式,实现了子系统与客户之间的松耦合关系。 ##### 外观模式主要内容:
1、为复杂繁多的子系统接口提供一个一致的外观供客户使用;
2、对整个系统来说,外观模式不会再子系统提供的接口功能上增加任何额外的功能;
3、外观模式也不一定限制客户必须得使用提供的统一外观,客户也可以单独调用子系统的功能或行为;
使用场景:
涉及到与多个业务子对象交互的场景
示例代码:
模拟情况:大学开学迎新时迎新人员需要带上新生进行如下行为手续:学工办注册、后勤处办理寝室入住手续、餐饮处办理饭卡手续等,这三个子对象都遵循单一职责原则。
|
|
提供Facade外观对象:
|
|
运行结果:
外观模式优点:
1、实现了子系统与客户之间的松耦合关系,子系统的变化调整客户不受影响,只需要调整外观对象;
2、子系统与子系统、子系统与外观对象之间相互独立;
3、对客户端屏蔽子系统组件,减少了客户端需要处理的子对象的数目。
参考:
- 《Head First 设计模式》
- http://blog.csdn.net/lovelion/article/details/8259789