andy's blog

记录我的所做所思

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  1 Posts :: 13 Stories :: 0 Comments :: 0 Trackbacks
一:
     一个看dvd的例子:通常做法:先调节灯光,调节屏幕,调节投影仪,调节功放,然后才是开DVD.
    

light.dim(
10);

screen.down();

projector.on();
projector.setInput(dvd);

amp.on();
amp.setVolume(
5);

dvd.on();
dvd.playMovie();

    这其实是一个比较普通的完整需求,这确涉及到五六个类,如果直接给这样的接口给client,十分不方便,我们应该根据需求,把细节包装起来,直接提供一个showMovie(包装以上实现)的方法给客户端。

  The Facade Pattern provides a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. 

  when:
 1.为一个复杂子系统提供一个简单接口
   (1:用一个方法包装不同类的多个方法。2:把一个逻辑模块类接口集中到一个类)
 2.子系统的独立性,将一个子系统与它的客户端以及其它子系统分开,可提高子系统的独立性和可移植性
 3.  层次化结构,简化层与层直接的依赖关系。
posted on 2006-03-30 11:56 zhoumin 阅读(87) 评论(0)  编辑  收藏 所属分类: 设计模式

只有注册用户登录后才能发表评论。


网站导航: