在MVP设置中通过模型的静态方法验证数据是否存在缺点?

时间:2016-01-29 21:46:32

标签: validation mvp

我最近reading about MVP,在帖子的最后,作者开始谈论数据的验证。他提到了

  

我赞成视图中的单个isValid()例程。

     

...

     

与模式更为一致的替代方法是在接口中包含此方法,并且在尝试对模型进行更改之前,演示者可以调用此方法(view.isValid())。 / p>

我不认为验证应该在View中处理,因为它暴露了更多关于Model的信息,而不是View应该知道的,特别是因为我们试图尽可能地保持View和Model的分离。此外,当您有多个引用同一模型的视图时,该方法会变得多余(例如,快速摘要视图与更详细的视图)。

Presenter最有机会验证数据,因为它是模型和视图之间的桥梁。我喜欢“替代方法”,但我仍然不喜欢它如何使用view.isValid。另外,我还不完全确定一个演示者是否控制一个视图或多个视图(另一个时间的问题)。

但是我发现的一个想法是使用模型中的静态isValid()方法。您可以在Presenter中调用它,Presenter会将View中的所有相关信息传递给方法。该方法返回某种形式的有效或无效,甚至可能具体到足以说明哪些信息无效。对我来说,这保留了模型中与模型相关的所有信息,并且可以被Presenter访问,同时保持View幸福地不知道模型。

其他验证实践解决这个想法是否有任何缺点,或者这种验证方法有任何明显的缺点?

0 个答案:

没有答案