事件总线与GWT中的HandlerManager?

时间:2013-10-03 08:36:34

标签: events gwt event-handling

当我使用一个GWT项目时,使用MVP patternHandlerManager通过事件在应用程序上进行通信。现在我正在我的项目上实施历史Machanisam。 他们(GWT tearm)使用类EventBus来管理事件。

在阅读某些博客时,我会HandlerManger WidgetsEventBus用于其他应用程序范围的通信。

但我觉得他们两个都有相同的功能,那么这两个实现的目的是什么,或者它们之间的区别是什么。

请帮帮我

1 个答案:

答案 0 :(得分:12)

HandlerManagerEventBus的祖先,它是从(从中计算出来的)中提取出来的。

主要区别在于HandlerManager有一个,它会对发送给它的事件强制执行,而EventBus可以调度没有源的事件(fireEvent 1}})或使用给定的动态源(fireEventFromSource)。然后,您可以将处理程序附加到仅为来自给定来源的事件触发的EventBus

在窗口小部件中,您希望强制事件源是窗口小部件。对于全局应用程序范围的事件总线,您可以根据需要为每个事件设置无源或动态动态设置(RequestFactory将其用于其EntityProxyChange事件,您只能收听与给定类型EntityProxy)相关的事件

注意:HandlerManager的javadoc不鼓励将其用于应用程序范围的事件总线。