现在的位置: 首页 > 综合 > 正文

java学习脚印 : 设计模式之外观模式

2014年02月12日 ⁄ 综合 ⁄ 共 771字 ⁄ 字号 评论关闭

java学习脚印 : 设计模式之外观模式

1.外观模式(Facade)定义

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


2.设计模式的实例

我的理解,当程序需求越多,编写的类就越复杂,这些类间关系,类间方法调用也变得更加复杂,因而需要一个一致且简单的对外接口,让我们使用这个系统时更轻松,也就是系统提供一致性接口来屏蔽内部的复杂性。


eg1: 如果让股民自己去买股票,每天需要花费大量精力来关心、研究股票的动态;而如果让股民投资基金,由基金公司的专业经理人来代为炒股就安全、方便了很多。

从股民面多众多股票,转换成股民面对一项基金,这个转换,使股民更加容易参与股票交易。-----来源: 《大话设计模式》


eg2: 在维护一个历史遗留的大型系统时,可能这个系统已经非常难以维护和拓展了,但是包含非常重要的功能,新的需求开发必须依赖于他,可以使用外观模式,开发一个外观类对客户端提供一个简单一致对外接口,而该接口内部则仍然使用原先的复杂系统的各种方法,这样对外封装了复杂性,更容易使用了。-----来源: 《大话设计模式》

eg3: 抽象层面上讲,操作系统(OS)就是一个外观类,它对用户提供了一个简单一致的接口,屏蔽了系统内部的复杂性,把底层的硬件、底层的系统软件全都封装起来供用户使用,这也是一种外观模式,如下图所示:


3.外观模式类间关系

外观模式,客户端通过外观类与系统交互,而外观类内部则与复杂的子系统交互来完成系统功能,类间关系如下图所示:


4.外观模式使用场合

  •    为复杂的子系统提供一致接口,供外部使用,来减轻外部使用的复杂度;
  •    为复用遗留的大型系统的重要功能时,通过提供外观类来简化新的开发;
  •    当开发具有层次结构的子系统时,通过为子系统的层间交互提供一致的接口,来简化 这些系统间的依赖关系。

抱歉!评论已关闭.