Android MVP对验证有疑问

Jos*_*hon 5 validation mvp android

我开始在Android项目上实现MVP模式,我对在执行任何操作之前应该在哪里验证字段有一些疑问.

例如,如果我必须发送一个包含三个字段(名称,电子邮件,文本)的表单.我应该验证活动中的字段还是应该将它们发送给Presenter进行验证?

如果与演示者的通信必须仅使用已经验证的正确数据,我还不能100%确定.

Joe*_*Min 12

这真的取决于,我的建议是(和我通常做的):

  • 如果可以在不访问数据库复杂操作的情况下验证字段,我将在活动中执行此操作.此类字段的示例如下:密码(密码需要包含至少7个字符),年龄(年龄必须为数字)
  • 如果需要通过访问数据库(或通过Web服务)验证字段,或者操作需要复杂的逻辑和资源,请在演示者中执行此操作.此类字段的示例如下:用户名(通过访问数据库来检查它是否是重复的用户名)

将其视为网站的前端和后端,虽然不完全相同,但它确实可以帮助您澄清令人困惑的概念.

  • 虽然起初在视图层中做一些次要验证逻辑很有诱惑力,但我相信即使这样的逻辑也属于表示层.它在演示者层中更容易测试,并且有明显的区别以及为什么你有2层的原因.这样,视图层保持漂亮,如果不是完全愚蠢的话. (2认同)