1

这里是菜鸟。在我的一个用例中使用 GWT 实现模型视图演示者模式时,我遇到了这个特定问题。

我刚从 Ray Ryan 的 Google IO 演讲开始,并关注了 Google Developers 网站上的一些文章。我没有使用任何 GWT 附加组件,例如 GWTP 或 MVP4G 或 GIN 或任何其他东西。只是按照 GWT 网站上的联系人示例并尝试为我的案例建模。

这就是问题所在。

我有这样的 AppController onValueChage 方法

   public void onValueChange(ValueChangeEvent<String> event) {
   if(token != null){
    presenter = null;

    if(token == "display")
    {

    presenter = new DefaultPresenter(rpcService, eventBus, new DefaultView());
    }
    else if(token == "popup")
    {
    presenter = new PopUpPresenter(rpcService, eventBus, new PopUpView());      
    }
    else if(token == "dialog")
    {
    presenter = new DialogPresenter(rpcService, eventBus, new DialogView());
    }

    if (presenter!= null) {
       presenter.go(container);
     }
    }
}

我的应用程序是这样流动的,首先显示,然后在那里进行选择会导致一个对话框,然后对话框设置一些变量。然后在对话框被隐藏后,我需要回到原来的显示并继续。但问题是我无法以相同的视图返回到我原来的DisplayPresenter,因为每当历史发生变化时,我最终都会创建一个新的演示者实例。

所有以粗体显示的东西都是独立的 Presenter,它们扩展了Presenter ,它们都有特定的视图。

问题 ?1. 每次历史发生变化时,帮助我摆脱创建演示者新实例的困境。

  1. MVP 模式中有没有一种方法可以在具有持久值的演示者之间传递控件?

  2. 如何在事件触发时在应用控制器内加载演示者的现有实例?

  3. 如何在事件触发时在应用控制器内加载演示者的现有实例?
4

1 回答 1

1

关于在演示者之间传递状态信息(问题 #1),检查Places可能会有所帮助。

于 2012-08-12T02:31:29.173 回答