我该如何使用新的GWT MVP框架?

4

我需要一个新的GWT MVP框架的教程,可以在这里找到。

Google提供的描述对我来说有点简短。以下内容是什么意思,我该如何使用?

  • 活动(Activities)
  • 地点(Places)
  • 事件总线(Eventbus)
  • 客户端工厂(ClientFactory)
  • 位置历史映射器(PlaceHistoryMapper)
  • 活动映射器(ActivityMapper)

此外,在这个新框架中,模型在哪里?


你需要什么样的知识?关于MVP框架的信息?还是关于MVP实现的信息? - enguerran
我之前写过一篇关于如何使用MVP和GWT实现我的应用程序的长篇答案。也许那可以帮到你?https://dev59.com/xXE85IYBdhLWcg3wVR2g#2832919 - Mia Clarke
2个回答

8

地点

这些类编码了有关您的程序导航到哪里的信息。 您可以创建一个 Place,表示“我在主屏幕上”,另一个表示“我正在编辑ID为52384的用户”。 我认为更好的名称应该是 PlaceTag,因为它们本身并不是地点 - 它们只指示您的程序所在位置。 URL 钩在 PlaceHistoryMapper 中,您可以在其中说:“嘿,#home 应该生成一个 HomeScreenPlace,而 #edituser:52384 应该生成一个 EditUserPlace(可能构造一个字段,将其设置为 52384)。

活动

这些启动和停止您的代码。每个 Activity 都有一个 start 方法,在适当时调用。 通过制作一个称为 ActivityMapper 的函数,您可以确定“何时适当”。getActivity 接受一个 Place,您必须决定返回哪个 Activity。 如果 Place 是您已编写以表示“我在主屏幕上”的内容,则可以返回 HomeScreenActivity,如果 Place 表示“我正在编辑 ID 为 523584 的客户端”,则可以返回 EditClientActivity。 您可以向活动添加方法或构造函数,以传递像 523584 这样的 ID。

EventBus

这是程序的不同部分用于通信的对象。 如果您不想了解太多信息,则可以只在 Google 的文档中指示的位置插入它(您链接到的文档)。

ClientFactory

这是一个集中式对象,其唯一责任是制作其他对象。 如果要简化事情,您也可以跳过此概念 - 这样您将错过对象的中央组织。 优点是,如果以后要将它们替换为例如移动版本或为测试而模拟的版本,则可以在一个地方一次性进行更改,而程序的其余部分根本不需要更改。 在从中央位置协调时,还可以轻松重复使用相同的对象,因此每次有人访问 #home 时都不必重新创建整个主屏幕。

您的实际程序

所有这些内容仅用于导航。 在每个 Activitystart() 方法中设置了您的模型、视图和 Presenter,当您的应用程序需要导航到新位置时,框架会调用该方法。在 start 方法中,您应该启动您的 Presenter(通常使用新实例)并启动您的显示(通常重用一个实例 - 客户端工厂对此很有帮助)。当您创建了您的显示后,通过将其设置为框架传递到您的 start 方法中的 AcceptsOneWidget 的小部件来让框架知道它。

这是不完整的,但是可以作为您提到的文档的良好补充:http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideMvpActivitiesAndPlaces.html


4
我建议您仔细听取Google I/O演示文稿,它们是理解GWT哲学的黄金钥匙。

http://www.google.com/events/io/2010/

http://www.google.com/events/io/2009/

特别是这些(尝试保持更全面的MVP框架视图)。它们并不涉及真正的GWT实现,但它们为您提供了基本的MVP知识。我仍然是一个8个月的新手,所以从新手到新手 :)。
Ray Ryan对MVP范例的概述。非常好的资源(这对我来说是一次启示)。

http://www.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html http://www.google.com/events/io/2010/sessions/architecting-production-gwt.html

Daniel Danilatos进行GWT测试。在这里,您将了解为什么MVP如此重要!

http://www.google.com/events/io/2010/sessions/gwt-continuous-build-testing.html


虽然这些链接肯定很有用,但是它们都不兼容当前 GWT 2.1 以及更新版本中 MVP 框架的实现,如果你想了解 GWT MVP 的工作原理,它们只会让你更加困惑。 - Hilbrand Bouwkamp
也许是吧,但这确实帮助我理解为什么要使用MVP模式!通常我们看到的是MVC,比如Spring框架。突然(嗯,并不是那么突然),谷歌推出了一种“新的方式”,你怎么能理解呢?这些演示根本不涉及具体实现!它们只是围绕MVP模式的一些通用构建概念。但无论如何,牢记Google I/O总是很有用的。 - code-gijoe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接