事件会自行解雇吗?

时间:2010-11-24 14:50:09

标签: model-view-controller events user-interface gwt

我不是一个可靠的GUI程序员,所以我试图理解不同的事件架构。我正在开发一个系统(在GWT中,但我不确定这很重要)我们在哪里引入一些自定义事件。一般来说,创建事件并将事件激活到事件总线上是一种好习惯吗?

在线阅读一些文章和教程后,我们的控制器代码实际上触发了事件,但是每个控制器都必须复制代码才能触发自定义事件。似乎如果你只是在事件本身上放置一个fire()方法,你可以避免重复。

这样做的优点/缺点是什么?

1 个答案:

答案 0 :(得分:1)

为了让事件自行触发,您需要在创建事件时将EventBus实例注入事件。这意味着您的控制器(事件的新手)将具有:

new MyEvent(m_eventBus).fire();

如果你重写这样的代码:

MyEvent event = new MyEvent();
m_eventBus.fireEvent(event);

然后你不必在你的Event实例中放置任何逻辑或引用,而不需要它。如果您正在使用GWT,HandlerManager类已经为您实现了事件总线。