知识卡片

值对象自我验证:在创建时校验外部数据

普通读书笔记卡 · 1973.s

内容

属性一旦定义为值对象,就连带把属性值的验证职责转移到值对象。验证逻辑作为构造函数的一部分,可含非空判断与业务规则;未过则抛出派生自DomainException的自定义异常。复杂验证宜提取到私有validate()。

参考来源

- 位置:《解构领域驱动设计》15.3.3(源文件:_epub-src/OEBPS/027.xhtml) - 结论依据:说明自我验证的职责归属与实现方式。 - 原始内容:一旦实体的属性定义为值对象,就连带着需要将属性值的验证职责也转移到值对象,做到自我验证……倘若验证未通过,一般需要抛出表达业务含义的自定义异常。