2010-11-24 118 views
1

我不是一个可靠的GUI程序员,所以我想了解不同的事件架构。我正在开发一个系统(在GWT中,但我不确定这个问题),我们正在介绍几个定制事件。一般来说,创建一个事件并让事件触发到事件总线是一种很好的做法吗?事件是否应该触发自己?

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

这样做有什么优点/缺点?

回答

1

为了让事件触发本身,您需要在创建事件时将EventBus实例注入到事件中。这意味着你的控制器(一个newing了事件)将有:

new MyEvent(m_eventBus).fire(); 

如果返工这样的代码:

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

那么你就不必把任何逻辑或引用您的Event实例中的服务,它不是真正需要的。如果您使用GWT,HandlerManager类已经为您实现了一个事件总线。