《Java编程思想》之更好了解内部类的价值(一个简单的例子)
start()是个独立的方法,而没有包含在构造器内,因为这样就可以在时间运行以后重新启动计数器,也就是能够重复使用Event对象。例如,如果想重复一个事件,只需要简单地在action()中调用start()方法。
Controller包含了一个用来管理并触发事件的实际控制框架。
设计的关键在于:使变化的事物与不变的事物互相分离。“变化的事物”指的是不同的Event对象所具有的不同的行为,这可以通过不同的Event子类来变现。
这正是内部类所要做的事情,内部类允许:
1).用单一的类完整地实现控制框架,从而将实现的细节封装起来。内部类用来表示解决问题所不许的各种不同的action()。
2).内部类能够很容易地访问外围类的任意成员,具有很大的灵活性。
创建GreenhouseControls对象(“命令”设计模式的一个例子):
运行结果:
以上内容整理自《Java编程思想》,若有遗漏,请您不吝指出!