【ThinkingInJava】20、统制框架的使用(初始化系统使用)

【ThinkingInJava】20、控制框架的使用(初始化系统使用)
/**
* 书本:《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);
                }
        }

好啦,根本停不下来了!!!!!