【发布时间】:2025-11-21 15:05:01
【问题描述】:
我正在学习 DDD 并使用 CQRS 模式。我不明白如何在不读取数据存储的情况下验证命令处理程序中的业务规则。
例如,Chris 想给 Ashley 一份礼物。
命令可能是 GiveGiftCommand。
我会在什么时候确认 Chris 确实拥有他想要赠送的礼物?如果不从数据库中读取,我将如何做到这一点?
【问题讨论】:
-
如果礼物具有“所有权”意识,并且礼物会“记住”克里斯是所有者,那么在
gift.Give(giver: chris, receiver: ashley)上,礼物可以验证chris(指代的变量Chris 作为实体或值对象)确实是所有者。 -
@YvesReynhout 以及 Gift 如何知道所有者 Chris 的真实存在? :)
-
在礼物出现的时候,把送礼者当作工厂。显然,您只能确定系统是否认识注册为 Chris 的人。
标签: validation domain-driven-design cqrs