我们一直在使用推荐的GWT方法以MVP方式构建应用程序的各个部分。我们使用的逻辑基于Google的示例 - Presenter获取/准备数据并将其设置在View上,而View包含对其调用的Presenter的引用(例如,在UiHandlers中)。
我们构建的应用程序的某些部分应该在其他视图中重用。例如 - 一个视图有时是应用程序的一部分的“主视图” - 可以在应用程序的另一部分的弹出窗口内使用(当然,在另一个案例中,视图/演示者的初始化不同,但基本上它是一样的。)
做这样的事情的正确方法是什么?如果不诉诸丑陋的hacky东西,我似乎找不到合适的人。
例如 - 如果我将重用组件的演示者放在主视图中 - 很容易初始化重用的组件,但是在主演示者中收到结果是很难的。这可以通过传递runnable或创建自定义处理程序或将父演示者本身传递给重用的演示者来解决。
所有这些方法对我来说似乎并不合适,而且看起来很难看。 任何想法/经验?
答案 0 :(得分:1)
您所描述的是一个能够由2个不同的演示者控制的视图。以接口的形式抽象那些公共API背后的演示者就足够了。
您还可以将其视为在两个不同视图中使用的复合窗口小部件。然后,复合窗口小部件将公开事件和两个视图可以连接到其特定演示者的公共API。
答案 1 :(得分:0)
查看活动和地点,它可以帮助您设计和构建您的应用。
https://developers.google.com/web-toolkit/doc/latest/DevGuideMvpActivitiesAndPlaces