在演示者之间传递控制/值,GWT Model View Presenter?

时间:2012-07-05 16:33:16

标签: java design-patterns gwt mvp

这里的菜鸟。在我的一个用例中,我在使用GWT实现Model View Presenter Pattern时遇到了这个特定问题。

我刚开始使用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 ,因为每当历史记录发生变化时,我最终都会创建一个新的演示者实例。

粗体中的所有内容都是单独的演示者,它们扩展了演示者,并且所有人都有特定的观点。

有问题吗? 1.每当历史发生变化时,帮助我摆脱创建演示者新实例的局限。

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

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

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

1 个答案:

答案 0 :(得分:1)

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