代码之家  ›  专栏  ›  技术社区  ›  Javid Jamae

事件应该自燃吗?

  •  1
  • Javid Jamae  · 技术社区  · 14 年前

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

    在一些在线文章和教程之后,我们让控制器代码实际触发事件,但是每个控制器都必须复制代码来触发自定义事件。如果你把一个 fire() 方法可以避免重复。

    这样做的利弊是什么?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Steve Armstrong    14 年前

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

    new MyEvent(m_eventBus).fire();
    

    如果您像这样重新编写代码:

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

    然后您就不必在事件实例中放置任何逻辑或对服务的引用,而实际上并不需要它。如果您使用GWT,则 HandlerManager 类已经为您实现了事件总线。