简单问题:在持久化之前,存储库是否应该验证实体? Validate =检查所有值是否与规则匹配(例如Name是< 50 chars等)。
答案 0 :(得分:8)
在DDD中,每个Aggregate都应对其有效性负责。永远不应该有无效状态的对象。即每个聚合体都应该拒绝任何导致无效状态的突变。
引自Jim Bogard撰写的关于该主题的精彩文章Validation in a DDD World:
简单地说,如果我们控制等式的操作方面,为什么在世界上我们会允许我们的实体进入无效状态?如果我们开始在我们的实体上使用“IsValid”属性,生活会变得复杂得多。