设计模式--Facade门面模式

设计模式--Facade门面模式
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();
    }
}
客户端代码少了很多

你可能感兴趣的:(设计模式--Facade门面模式)