我不是一个可靠的GUI程序员,所以我试图理解不同的事件架构。我正在开发一个系统(在GWT中,但我不确定这很重要)我们在哪里引入一些自定义事件。一般来说,创建事件并将事件激活到事件总线上是一种好习惯吗?
在线阅读一些文章和教程后,我们的控制器代码实际上触发了事件,但是每个控制器都必须复制代码才能触发自定义事件。似乎如果你只是在事件本身上放置一个fire()
方法,你可以避免重复。
这样做的优点/缺点是什么?
答案 0 :(得分:1)
为了让事件自行触发,您需要在创建事件时将EventBus实例注入事件。这意味着您的控制器(事件的新手)将具有:
new MyEvent(m_eventBus).fire();
如果你重写这样的代码:
MyEvent event = new MyEvent();
m_eventBus.fireEvent(event);
然后你不必在你的Event实例中放置任何逻辑或引用,而不需要它。如果您正在使用GWT,HandlerManager
类已经为您实现了事件总线。