我需要一个新的GWT MVP框架的教程,可以在这里找到。
Google提供的描述对我来说有点简短。以下内容是什么意思,我该如何使用?
- 活动(Activities)
- 地点(Places)
- 事件总线(Eventbus)
- 客户端工厂(ClientFactory)
- 位置历史映射器(PlaceHistoryMapper)
- 活动映射器(ActivityMapper)
此外,在这个新框架中,模型在哪里?
我需要一个新的GWT MVP框架的教程,可以在这里找到。
Google提供的描述对我来说有点简短。以下内容是什么意思,我该如何使用?
此外,在这个新框架中,模型在哪里?
这些类编码了有关您的程序导航到哪里的信息。 您可以创建一个 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。
这是程序的不同部分用于通信的对象。 如果您不想了解太多信息,则可以只在 Google 的文档中指示的位置插入它(您链接到的文档)。
这是一个集中式对象,其唯一责任是制作其他对象。 如果要简化事情,您也可以跳过此概念 - 这样您将错过对象的中央组织。 优点是,如果以后要将它们替换为例如移动版本或为测试而模拟的版本,则可以在一个地方一次性进行更改,而程序的其余部分根本不需要更改。 在从中央位置协调时,还可以轻松重复使用相同的对象,因此每次有人访问 #home 时都不必重新创建整个主屏幕。
所有这些内容仅用于导航。 在每个 Activity
的 start()
方法中设置了您的模型、视图和 Presenter,当您的应用程序需要导航到新位置时,框架会调用该方法。在 start
方法中,您应该启动您的 Presenter(通常使用新实例)并启动您的显示(通常重用一个实例 - 客户端工厂对此很有帮助)。当您创建了您的显示后,通过将其设置为框架传递到您的 start
方法中的 AcceptsOneWidget
的小部件来让框架知道它。
这是不完整的,但是可以作为您提到的文档的良好补充:http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideMvpActivitiesAndPlaces.html
http://www.google.com/events/io/2010/
http://www.google.com/events/io/2009/
特别是这些(尝试保持更全面的MVP框架视图)。它们并不涉及真正的GWT实现,但它们为您提供了基本的MVP知识。我仍然是一个8个月的新手,所以从新手到新手 :)。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