为生存而奔跑

   :: 首页 :: 联系 :: 聚合  :: 管理
  271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

留言簿(5)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 319838
  • 排名 - 75

最新评论

阅读排行榜

评论排行榜

Facade模式意图:提供一个子系统的外部与其内部的通信。他提供了一个高层次的接口,使得子系统更容易使用。

举例:
假设有一个保安系统,由2个camera,3个light,1个sensor,1个alarm组成。保安系统的客户端,即工作人员需要将这些仪器打开或者关闭。

如果不适用Facade模式,代码为:

public class  Client
{
    
static private Camera camera1,camera2;
    
static private Light light1,light2,light3;
    
static private Sensor sensor;
    
static private Alarm alarm;
    
public static void main(String[] args) 
    {
        camera1.turnOn();
        camera2.turnOn();
        light1.turnOn();
        light2.turnOn();
        light3.turnOn();
        sensor.activate();
        alarm.activate();
    }
}


如果使用了Facade模式,代码为:
public class  Facade
{
    
private Camera camera1,camera2;
    
private Light light1,light2,light3;
    
private Sensor sensor;
    
private Alarm alarm;
    
public void active()
    {
        camera1.turnOn();
        camera2.turnOn();
        light1.turnOn();
        light2.turnOn();
        light3.turnOn();
        sensor.activate();
        alarm.activate();
    }
}

public class Client
{
    
private static Facade facade;
    
public static void main(String[] args)
    {
        facade.active();
    }
}
客户端代码少了很多

posted on 2009-11-28 13:41 baby-fly 阅读(410) 评论(0)  编辑 收藏 引用 所属分类: Design Pattern

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理