我所学到的所有GWT / MVP示例都显得过于简单,无法清楚地了解有关显示和处理稍微复杂的模型对象的最佳实践。
例如,大多数示例都类似于演示者,它将点击处理程序附加到视图上的几个TextBox中...如果单击了save,则调用演示者的save(),它只是获取更新的值,我们'重做,MVP风格。但这不太现实。
例如,假设我们有:
PresenterX - 得到一个'模型'对象,让我们说任何具有未知数量的各种基元或任何
的对象ViewX - 应在表格中显示模型对象,和/或允许对其进行编辑/重新保存
...所以听起来非常非常基本。但是,我们不知道模型对象中需要显示的字段数量。这可能与动态的行/列数有关。桌子可能没什么问题......但是演示者应该如何将它提供给视图表?作为视图理解的模型对象,或者将其分解为一堆列表...视图基本上仍然需要理解。
此外,某些字段可能是可编辑的,在我们获取模型对象之前这些字段是未知的(模型中的某些内容确定哪些字段是可编辑的,比如说) - 那么谁应该负责确定哪些是可编辑的?可能是演示者,但我们如何在视图中反映出MVP的方式呢?
最后,让我们说视图上有一个“保存”按钮...谁的工作是弄清楚表中所有被更改的行?
在我看来,视图需要更多地了解模型,或者演示者需要更多地了解视图 - 这两者都不是很好的MVP :( ...或者也许应该有一些中间对象。< / p>
我知道有一些更好/更新的有用方法来处理这类东西(编辑/ RequestFactory等),但我正在寻找有关上述情况的建议。