我已经读过GWT项目站点的MVP教程,视图应该只包含它包含的小部件的事件处理程序,处理它们的逻辑应该驻留在演示者中。关于这一点,我有以下疑问:
很多时候我们需要根据视图中收到的事件动态更改小部件的样式,所以在prsenter中移动这种逻辑是否有意义?
很多时候我们需要从视图中的多个字段获取数据并创建一个对象并将其传递给某个窗口小部件,比如一个具有自己的asyncDataProvider的cellTable。 那么为所有视图字段创建getter和setter是否有意义,以便演示者可以访问它们并形成对象并初始化cellTable并将对象传递给它? 在演示者的视图面板中添加小部件是一个好主意吗?
我读到的每个地方都有将逻辑添加到演示者而不是视图的原因是增加jUnit测试覆盖率,这样可以节省时间。但是,据我所知,我们可以在View上使用模拟框架来编写内部基本逻辑的测试用例。
考虑到第3点,在视图中编写如此多的代码(getter / setter)是否真的有意义。我相信只有在以下情况下,流程应该从视图回到演示者:
一个。我们需要切换视图
湾我们没有要在视图中显示数据,因此演示者可以通过RPC提供它
答案 0 :(得分:1)
首先,请参阅Google IO 2013的Demystifying MVP and EventBus in GWT(slides)演示文稿。 这是对整个MVP + GWT方法的更新,它应该回答你的一些疑问和问题。
通常,在MVP和设计应用程序架构方面有很多意见和方法。所以,YMMV。