gpt4 book ai didi

java - GWT RequestFactory - 如何正确初始化它?

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:42 25 4
gpt4 key购买 nike

我的 GWT 应用程序遵循 MVP 模式,将单例 EventBusDisplay+Presenter 绑定(bind)在 Activity 中(借助 GIN):

public class MyActivity implements Activity {
@Inject MyDisplay display; //usually bound in Singleton scope
@Inject MyPresenter presenter;

...
@Override
public void start(AcceptsOneWidget panel, EventBus eventBus) {
diplay.bindPresenter(presenter);
presenter.start(eventBus);
panel.setWidget(display);
}
...
}

通常我使用 GIN 将特定 RequestFactory 的新实例注入(inject)特定 Presenter 中。我的演示者有 start() 方法,我可以在其中传递代表 Activity 创建的 EventBus 实例 (ResettableEventBus)。

public MyPresenter {

@Inject MyRequestFactory requestFactory;

public void start(EventBus eventBus) {
requestFactory.initialize(eventBus);
...
}
...
}

我认为让 GIN 创建并注入(inject) MyRequestFactory 的新实例始终是安全的。但是,如果我想使用 RequestFactorySourceMyPresenter 进行单元测试,我宁愿需要使用以下方法初始化 RequestFactory:

requestFactory.initialize(eventBus, new InProcessRequestTransport(processor));

问题来了。我可以在 Singleton 范围内绑定(bind) MyRequestFactory (生成的实例是否保留任何状态?),并使用我的单例 EventBus 全局初始化它(它是否依赖于 ActivityEventBus?) - 后果是什么?我假设注入(inject)到 MyPresenterMyRequestFactory 实例已经初始化用于生产或测试。另一种解决方案是将一些额外的 RequestFactory 初始化策略注入(inject)到 MyPresenter 中,但有必要吗?

最佳答案

RequestFactory设计用作单例

假设您还有一个应用程序范围的事件总线,它的工作方式与您今天使用它的方式相同:RequestFactory 仅向事件总线发送消息,它不监听事件。

关于java - GWT RequestFactory - 如何正确初始化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16105107/

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