首页 新闻 会员 周边

验证规则究竟写在哪里?写在Domain显然是错的!

0
[已关闭问题] 关闭于 2010-09-12 17:04

不管在asp.net MVC或者Webform下都存在视图对象这一与视图对应的数据对象,一般被称为ViewModel,看见几个开源项目都是把验证规则写在Domain里,看似很合理,是Domain的事情,但细想,验证规则其实是和视图紧紧相关的,有可能相同属性,在不同页面要求不同的验证效果等等,从这个角度来看,验证规则就应该写在ViewModel,这个问题你们是怎么处理的?

bugfly的主页 bugfly | 初学一级 | 园豆:10
提问于:2010-09-04 21:27
< >
分享
所有回答(3)
0

我觉得都可以

风海迷沙 | 园豆:4453 (老鸟四级) | 2010-09-05 10:57
是都可以,但写在Domain显然不合理,ViewModel!=Domain 也不是小于等于关系那么简单了,关系一般是交集。那么你怎么解决交集中的共享验证部分和交集外的不同验证部分?面对这些需求,Domain的所有验证规则已经没用,而另一方面,你怎么解决相同属性,可能不同验证规则的需求?
支持(0) 反对(0) bugfly | 园豆:10 (初学一级) | 2010-09-05 14:19
0

看要求,沒有一定的標準

谢堂文(Darren Xie) | 园豆:205 (菜鸟二级) | 2010-09-05 11:40
是都可以,但写在Domain显然不合理,ViewModel!=Domain 也不是小于等于关系那么简单了,关系一般是交集。那么你怎么解决交集中的共享验证部分和交集外的不同验证部分?面对这些需求,Domain的所有验证规则已经没用,而另一方面,你怎么解决相同属性,可能不同验证规则的需求?
支持(0) 反对(0) bugfly | 园豆:10 (初学一级) | 2010-09-05 14:19
0

纯粹从理论上讲的话、View 只管呈现功能、ViewModel 负责对界面输入的做合法性验证、而Domain 也要做验证、这个验证是验证专属于那个 Domain 的规则验证、与 ViewModel 验证并非一一对应的。但是具体做法就需要具体考虑了。一般情况下都是两项验证合并了。

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-09-06 08:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册