对象内部或外部的域实体验证代码?

时间:2010-01-12 06:35:58

标签: validation

您在哪里放置域实体的验证码?在类本身内部使用Validate()等方法,还是在使用对象的上下文中?或两者兼而有之?

2 个答案:

答案 0 :(得分:0)

最近的一个项目,我们混合了两者。对于像字段长度或常规表达这样的简单数据约束,我们将对实体进行验证。对于更复杂的验证(例如与系统中其他实体的关系),我们将使用一个单独的服务验证实体,我们发现这非常有用。

答案 1 :(得分:0)

如果验证只需要查询实体内的对象,那么将验证放在实体中。对于Person实体

  • 检查年龄> 0或name不为空应该在validate()方法中的实体内
  • 检查某个课程是否涵盖某个政策(来自所有政策列表)将涉及查询/阅读可能与实体本身无关的其他课程/政策对象,并应由上下文/服务/实体外的验证者