【问题标题】:Should events fire themselves?事件应该自己触发吗?
【发布时间】:2010-11-24 14:50:09
【问题描述】:

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

根据网上的一些文章和教程,我们的控制器代码实际上触发了事件,但是每个控制器都必须复制代码来触发自定义事件。看来,如果您只是在事件本身上添加一个 fire() 方法,您就可以避免这种重复。

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

【问题讨论】:

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


    【解决方案1】:

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

    new MyEvent(m_eventBus).fire();
    

    如果你像这样重写代码:

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多