单个应用程序中的GXT + GWT MVP?

时间:2013-04-02 03:37:06

标签: mvp gxt gwt-mvp gwt-places gwt-activities

我正在使用100%gxt代码的这个项目。现在我们有另一个使用GWT MVP模式编写的小项目,我们的任务是将两个项目集成到一个。所以我们将在gxt和mvp代码之间进行来回调用(包括活动和地点)。我是一个使用mvp模式的新手,如果真的很好的想法将两者结合起来有点困惑。其他(小)项目曾经是gxt,直到用mvp模式重写。所以我可以选择回到旧的gxt代码或者将新的mvp模式集成到主gxt app中。但是因为gxt不支持activity / places概念,所以不能直接从gxt调用mvp代码。你需要在调用mvp代码时传递假数据来模拟地方等。此外,当从一个地方转到另一个地方时,mvp代码存在问题,例如在rpc调用服务器端期间出现时间延迟时,屏幕变为灰色(因为当前视图已退役而新的视图已退出) t初始化)等待rpc在导航到下一个地点之前返回。

所以我非常感谢MVP专家提出的关于如何解决这种情况的任何意见......

1 个答案:

答案 0 :(得分:0)

在演示者中,我坚持使用数据操作和可测试代码,或任何使视图变得愚蠢的东西。这就是说我想让演示者控制视图,但是我说有许多灰色区域可以做什么工作和迭代。将其归结为最好的方法是构建一个JUnit测试并测试演示者逻辑,至少这是我们用GWTP做的。

A& P并没有真正有一套建立严格MVP的方法,或者如果在A& P中建立MVP方法可能会有不同的方式。但我可能会将数据操作逻辑粘贴在Place或Activity中。

我在这里有Request Factory,它允许数据源。 https://github.com/branflake2267/Archetypes/blob/master/archetypes/gwt-activitiesandplaces-requestfactory/src/main/java/org/gonevertical/project/client/application/home/HomePlace.java#L16

在我使用GXT的最新项目中,我使用GWTP作为MVP框架,它非常适合遵循严格的可测试MVP模式。

我在演示者中有GXT数据对象。这个项目很年轻,所以我仍然在忙着放置东西。但我认为它至少可以在这个演示者中给出GXT对象放置的角度。 https://github.com/branflake2267/Project-Manager/blob/master/Directory/src/org/gonevertical/pm/directory/client/application/widgets/archetype/list/ArchetypeListPresenter.java