我需要一个新的GWT MVP框架的教程,该框架提供了here。
Google给出的描述对我来说有点简短。以下是什么含义 - 以及如何使用 - 以下内容?
此外,这个新框架中的模型在哪里?
答案 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。
这是程序的不同部分用于通信的对象。如果您不想这样做,您不需要太了解它 - 您只需将其插入Google文档中指明的位置(您链接到的)
这是一个集中的对象,其唯一的责任是制作其他对象。如果你想简化一些事情,你也可以跳过这个概念 - 你只会错过对象的中心组织。优点是,如果您想稍后将其切换出来,例如移动版本或模拟测试版本,您可以在一个地方同时完成所有操作,而其余程序则不会根本不得不改变。在从中心位置进行协调时,您也可以轻松地重复使用相同的对象,因此每次有人去#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