燈泡開關小程序
方法一小程序
燈類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();}