gpt4 book ai didi

java - GWT 模型 View 演示器,重用演示器?或 Presenter - Presenter Communication

转载 作者:行者123 更新时间:2023-11-30 09:35:28 27 4
gpt4 key购买 nike

这里是菜鸟。

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

我有一个 DockLayout 面板,它有一个标题、左侧的导航树和中央主面板。所有这些我都在一个实现 DefaultPresenterDefaultView 中。

现在我有一个 DialogBox,当用户在树中做某事时它会弹出,这分别在 DialogViewDialogPresenter 中建模。

现在,当我隐藏 DialogBox 时,我最终会从 AppController 调用一个新的 DefaultPresenter 实例,它会创建一个 < strong>新的 DefaultView 以及我在主中央面板中的所有树选择和其他更改都消失了。

  1. 是否可以重新使用演示者的实例而不创建新的历史变化实例? (例如,在我的例子中是 DefaultPresenter)
  2. 在 MVP 模式中是否有一种方法可以在具有持久值的演示者之间传递控制?
  3. 如何在事件触发时在应用程序 Controller 中加载演示者的现有实例?

还是我弄错了整个 MVP 架构?我现在计划为我的每个组件设置不同的演示者和 View ,比如 HeaderPresenter/HeaderView, TreePresenter/TreeView , MainContentPresenter/MainContentView ?这样我就只会创建我需要的演示者的新实例(比如MainContentPresenter )并保持现有的(如 TreePresenter 和 HeaderPresenter)这能解决我的问题吗?我将如何在浏览器窗口中拼接所有这些不同的 View ? 我没有使用 UiBInder,只是坚持使用基础知识。

各位专家帮帮我,我陷入了僵局!

最佳答案

当我读到您的问题时,我觉得答案应该是一篇文章,类似于GWT 应用程序的状态展示器架构。然而,这是 StackOverflow,它是关于简洁的,所以让我们看看:

答案

1. Is it possible to re use instances of presenters without creating a new one on history change?

当然。没有什么能阻止您在注入(inject)了您的 View 的一堆单例演示者之间切换(切换将在您的 ActivityMapper 实现中发生)。 注意此后假设您的演示者是 Activities .

2. Is there a way in MVP pattern to pass controls between presenters with values persisting ?

由于您的演示者现在是单例,它们将保留其成员变量的状态。用于演示者、事件和 EventBus 之间的消息交换是你的 friend 。

3. How to load a existing instance of a presenter inside app controller on an event fire ?

您的 ActivityMapper 实例,一旦注册到您的 ActivityManager , 应该足够了。 ActivityManager 将依赖于您对 ActivityMapper 接口(interface)的 public Activity getActivity(Place place) 的实现,以返回您的单例演示者之一。

资源

David Chandler's Google I/O 2011 GWT session恰好涉及这种类型的主/细节架构。总的来说,我强烈推荐它,对于这个问题,特别是第 18 分钟之后的部分,当大卫开始全面概述 Activity 和地点时。

关于java - GWT 模型 View 演示器,重用演示器?或 Presenter - Presenter Communication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11356540/

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