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

时间:2011-03-28 11:40:50

标签: gwt mvp

我需要一个新的GWT MVP框架的教程,该框架提供了here

Google给出的描述对我来说有点简短。以下是什么含义 - 以及如何使用 - 以下内容?

  • 活动
  • 地方
  • Eventbus
  • ClientFactory
  • PlaceHistoryMapper
  • ActivityMapper

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

2 个答案:

答案 0 :(得分:8)

地点

这些类可以编码有关程序导航位置的信息。您可以创建一个Place,意思是“我在主屏幕上”,另一个意思是“我正在编辑ID为52384的用户。我认为这些更好的名称将是{{1 s,因为它们本身并不是一个地方 - 它们只是表明你的程序在哪里。这个URL被挂钩到PlaceTag中的地方,你可以说,“嘿,#home应该生成一个{ {1}}和#edituser:52384应生成PlaceHistoryMapper(可能使用您设置为52384的字段构建)。

活动

这些启动和停止代码。每个HomeScreenPlace都有EditUserPlace方法,在适当时调用。您可以通过创建Activity来确定“适当时”的含义,该start具有名为ActivityMapper的函数。 getActivity接受getActivity,您必须决定返回Place。如果Activity是您编码为“我在主屏幕上”的任何内容,则可能会返回Place,如果HomeScreenActivity表示“我正在编辑ID为523584的客户端,“您可能会返回Place。您可以向活动添加方法或构造函数以传入类似523584的ID。

EventBus

这是程序的不同部分用于通信的对象。如果您不想这样做,您不需要太了解它 - 您只需将其插入Google文档中指明的位置(您链接到的)

ClientFactory

这是一个集中的对象,其唯一的责任是制作其他对象。如果你想简化一些事情,你也可以跳过这个概念 - 你只会错过对象的中心组织。优点是,如果您想稍后将其切换出来,例如移动版本或模拟测试版本,您可以在一个地方同时完成所有操作,而其余程序则不会根本不得不改变。在从中心位置进行协调时,您也可以轻松地重复使用相同的对象,因此每次有人去#home时都不必重新创建整个主屏幕。

您的实际计划

所有这些东西都只是用于导航。您的模型,视图和演示者都是在每个EditClientActivity Activity方法中设置的,当您的应用导航到新位置时,框架会调用该方法。在start()方法中,您应该启动您的演示者(通常使用新实例)并启动您的显示(通常重用一个实例 - 客户端工厂对此有好处)。创建显示后,您可以通过将框架设置为框架传递到start方法的AcceptsOneWidget的窗口小部件来了解框架。

这不完整,但对您提到的文档有很好的补充:http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideMvpActivitiesAndPlaces.html

答案 1 :(得分: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