gpt4 book ai didi

java - GWT EventBus 中的大事件列表

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:21 27 4
gpt4 key购买 nike

在 Google Web 工具包提供的示例中,他们仅在一个类中为整个应用程序添加事件处理程序。

如 - 对于模块 1、2 和 3,所有事件都在主 AppController 类中注册。我发现这有点单一,当我们使用 MVP 模式时,我们会在每个 Presenter 中声明一个名为 bind() 的方法,如下所示:

public class MyTestPresenter implements Presenter{

private void bind()
{
TestEvent.eventBus.addHandler(TestEvent.Type, new TestEventHandlerImpl() )
}

}


public class TestEvent
{
public static SimpleEventBus eventBus = new SimpleEventBus()
}

查询是:

  1. 如果我们的应用程序很大——我们会使用一个事件总线来填充其中的一千多个事件——或者我们是否会设计为每个模块都有单独的事件总线实例?

  2. 保留静态事件总线字段的任何成本。将它的实例提供给所有类的任何更好的设计 - 通过构造函数将它传递给所有类,每个呈现器类都有它的引用似乎有点困惑......

  3. 在事件处理方面,GWT 中的 Activity 和位置是什么? - 有人可以指出如何理解 Activity/地点的一般概念吗?

最佳答案

实际上我也不喜欢 GWT 中的事件总线实现。我问过 smt about前。现在,我开发了一些桌面应用程序,并以接下来的方式设计了 eventBus。

public interface EventBus {
void fireEvent(Event event);

<T extends Event> void addHandler(Class<T> eventType, Handler<T> handler);

interface Event {
}

interface Handler<E extends Event> {
void handle(E event);
}
}

所以在通常的Java应用程序中我会以其他方式设计它,但在这里我们应该处理与javascript等相关的问题。

If our application is huge - we would be using one eventbus to populate more than a thousand events in it - or would we design in such a way that we have separate instances of event bus for each module?.

我也在想这个问题。我发现没有任何真正的优势。对于模块化,您可以分离事件的可见性。并且有一些缺点。假设您应该在同一个类中处理多个事件总线——代码会很困惑。此外,您应该以某种方式将此实例映射到类。

Any cost of keeping the static event bus field. Any better design to give it's instance to all classes - passing it around to all classes through a constructor with each presenter class having it's reference seems a bit of clutter ...

两者都可以。在新的 Activity-Place 框架中,它作为参数传递。

What are activity and places in GWT when it comes to event handling? - Can someone give a pointer to how to understand the concept of activity/place in general?

Activity 就像您的旧演示者,但没有低级别 View 绑定(bind)。就像用于指定窗口的历史条目一样放置。

关于java - GWT EventBus 中的大事件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5969442/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com