这里的菜鸟。在我的一个用例中,我在使用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.每当历史发生变化时,帮助我摆脱创建演示者新实例的局限。
MVP模式中是否有一种方法可以在持久化值的演示者之间传递控件?
如何在事件触发时在app控制器内加载演示者的现有实例?