DDD:在持久化之前,存储库是否应该验证实体?

3 entity domain-driven-design ddd-repositories repository-pattern

简单的问题:在持久化之前,存储库是否应该验证实体?验证=检查所有值是否与规则匹配(如名称<50个字符等).

Den*_*aub 8

在DDD中,每个Aggregate都应对其有效性负责.永远不应该有无效状态的对象.即每个聚合应该拒绝任何导致无效状态的突变.

引自Jim Bogard的一篇关于DDD世界中的验证的伟大文章:

简单地说,如果我们控制等式的操作方面,为什么在世界上我们会允许我们的实体进入无效状态?如果我们开始在我们的实体上使用"IsValid"属性,生活会变得复杂得多.