2014-11-06 80 views
1

我已阅读GWT项目网站的MVP教程,该视图应该只包含它包含的小部件的事件处理程序,并且处理它们的逻辑应该驻留在演示者中。对此,我有以下疑点:GWT中的MVP:最佳设计实践

我们需要动态改变控件的样式事件的基础上,对视图收到
  1. 很多次,所以它是有意义的移动这样的逻辑在prsenter?

  2. 很多时候我们需要从视图中的几个字段中获取数据,并创建一个对象并将它传递给某个窗口小部件,如cellTable,它有自己的asyncDataProvider。 因此,为所有视图字段创建getter和setter是否有意义,以便演示者可以访问它们并形成对象并初始化cellTable并将对象传递给它? 在演示者的视图面板中添加小部件是否是一个好主意?

  3. 到处都是我读到将逻辑添加到演示者而不是视图的原因是为了增加jUnit测试覆盖率,这可以节省时间。但是,据我所知,我们可以在View上使用模拟框架,并为它们内部的基本逻辑编写测试用例。

  4. 考虑到第3点,在代码中写入如此多的代码(getter/setter)是否真的有意义。我相信流量应该回到主持人看来,只有当:

    a。我们需要切换视图

    b。我们没有数据视图中显示,使演示者可以通过RPC提供它

回答

1

对于初学者,请参阅从谷歌IO的Demystifying MVP and EventBus in GWTslides)介绍2013年 这是一个更新整个MVP + GWT方法应该回答你的一些疑问和问题。

一般来说,在涉及到MVP和设计应用程序的体系结构时,有许多意见和方法。所以,YMMV。

  1. 我会问自己 - 这是对数据状态的改变吗?或者只是对演示文稿进行更新?在后一种情况下,我会将它保留在视图中,否则视图的界面会不必要地膨胀。
  2. 在这种情况下,您可能需要考虑创建Editor。然后你可以使用编辑器的界面进行编辑和刷新数据 - 你不必公开所有单独的字段。
  3. 确实如此 - 请参阅上面的介绍,其中提到在某些情况下,分隔视图和演示者是没有意义的。特别是当我们拥有诸如gwtmockito之类的工具时。
  4. 这取决于你如何对待你的观点 - 他们是愚蠢的观点,不包含逻辑,并由演示者控制?一方面,这可以实现很好的分离,另一方面,正如你所提到的,视图的界面往往会变得非常冗长。我试图瞄准这两种方法之间的甜蜜点,但它确实取决于您的编码风格和用例。
+0

该链接无效:404 – snorbi 2015-07-09 12:12:25

+0

@snorbi:谢谢,链接已更新。 – 2015-07-09 22:07:23