/**
* 书本:《Thinking In Java》
* 功能:控制框架的实现,1、控制框架的完整实现是由单个的类创建的,从而使得实现的细节被封装了起来。内部类用来表示解决问题所必须的各种不同的action
* ,2、内部类能够很容易地访问外围类的任意成员,所以可以避免这种实现变得笨拙。
* 文件:GreenhouseController.java
* 时间:2015年4月7日19:14:33
* 作者:cutter_point
*/
package Lession10innerclasses;
import Lession10innerclasses.controller.*;
public class GreenhouseController
{
public static void main(String [] args)
{
GreenhouseControls gc = new GreenhouseControls();
gc.addEvent(gc.new Bell(900));
Event[] eventList =
{
gc.new ThermostatNight(0),
gc.new LightOn(200),
gc.new LightOff(400),
gc.new waterOn(600),
gc.new waterOff(800),
gc.new ThermostatDay(1400)
};
gc.addEvent(gc.new Restart(2000, eventList));
if(args.length == 1)
{
System.out.println("======================");
gc.addEvent
(
new GreenhouseControls.Terminate
(
new Integer(args[0])
)
);
}
// System.out.println(System.nanoTime());
// System.out.println(args[0]);
gc.run(); //根本停不下来的东西!!
}
}
好吧,这玩意就是个死循环!!!
前面那个类Controller里面的函数run有这么个玩意
while(eventList.size() > 0)
{
for(Event e : new ArrayList<Event>(eventList)) //对eventList做一个拷贝,免得改动了原来的数据
if(e.ready())
{
System.out.println(e);
e.action();
eventList.remove(e);
}
}
好啦,根本停不下来了!!!!!
【ThinkingInJava】20、控制框架的使用(初始化系统使用)
原文地址:http://blog.csdn.net/cutter_point/article/details/45421839