燈泡開關小程序

燈泡開關小程序
方法一小程序

燈類ide

//怎麼產生燈亮,燈滅的動做接口

public class Light{事件

    private boolean status = true;event

    public Event lightOn(){class

      return new OnEvent();
}程序

    public Event lightOff(){
      return new OffEvent();
}方法

    public static void main(String[] args){
       Light light = new Light();im

       Event event = light.lightOff();static

       Controller controller = new Controller();

       controller.addEvent(event);
//這樣會存在 按幾回事件 就會出現多少次 燈亮了 或 燈滅了的問題
       // controller.addEvent(event);
       // controller.addEvent(event);
       // controller.addEvent(event);
   

 

}

}

----------
//事件接口 根據不一樣的事件 執行不一樣的邏輯

//事件接口 類 Event

public interface Event{
     public void execute();
}

------------
//實現接口
public class OnEvent implements Event{
     @Override
     public void execute(){
      System.out.println("燈亮了...");
}

}


----------
public class OffEvent implements Event{
     @Override
     public void execute(){
      System.out.println("燈滅了...");
}

}

-------------
//開關的控制 類

public class Controller{
     public void addEvent(Event event){
       event.execute();
}

}

---------------------------------------------------------------------
方法二
解決方法一的問題手段

public class Light{

   private boolean status = true;   //燈亮

   public Event lightOn(){
     return new Event(){

     @Override
     public void execute(){
      if(!status){

       status = true;
       System.out.println("燈亮了...");
}

}

};
}

    public Event lightOff(){
      return new Event(){
      @Override
     public void execute(){
     if(status){
      status = false;
      System.out.println("燈滅了....");
}

}

};

   public static void main(String[] args) {
  Light light = new Light();
  Event event = light.lightOff();  //指令
  
  Controller controller = new Controller();
  
  controller.addEvent(event);  //執行指令
  

}

}

-------------

//開關控制 類

public class Controller {
 
 public void addEvent(Event event){
  System.out.println("解析指令,而後執行....");
  event.execute();
 }
}

------------------

//事件接口,根據不一樣的事件,執行不一樣的邏輯public interface Event { public void execute();}

相關文章
相關標籤/搜索