Java事件:这是一个很好的方法吗?

时间:2009-01-16 15:03:19

标签: java events

我正在重新实现Java中的.Net API,并且API指定了一大堆事件,而java并没有暗中支持。

我将使用观察者模式,但由于事件的数量,我真的不想让界面混乱。

我想知道声明一个“Event”类是否是一个好主意,它有一个订阅方法,它接受一个“EventHandler接口”和一个throw方法。

这样我就不会因为个别事件处理它们而使我的父类混乱不已。[/ p>

我能看到的唯一问题是使用throw命令的参数,因为不同的事件会有不同的参数。

我提出的解决方案是让throw方法接受一个对象数组,或者创建一个像IEventArguemnts这样的接口,它可以传递给throw命令并由订阅该事件的代码处理,这似乎对我更有意义。

我很感激有任何改进建议。或任何改进。

2 个答案:

答案 0 :(得分:2)

Java有事件,也有事件的API支持。查看java.util包。您会看到java.util.EventListenerjava.util.EventObject和其他一些人。还有用于维护订户等的支持类。例如,AWT和Swing API是基于事件的。

通常,addXxxListener(XxxListener l)方法(即订阅方法)将在触发事件的类上进行,而不是在事件类本身上进行。事件是消息,它是从发布者到订阅者的内容。

答案 1 :(得分:0)

为什么不直接使用JavaBeans事件模型?如果所有对象都在同一个JVM中运行,那么它将正常工作。

Peter Coad对改进Java Observer模型有一些想法。也许你会发现这些有用。