在第 4 章(第一个草图)中的第 4 章(第一个草图)中用 C#中的示例应用领域驱动设计一书中。并发冲突检测很重要我不明白为什么作者选择了这个聚合。客户有他自己的聚合,订单有他的聚合自己的聚合体。
我认为客户应该参考他的订单。
订单仅与客户具有身份。我没有看到通过他的身份从数据库中获取订单的情况。但是如果我应用这个逻辑,那么在我的域模型中,我几乎没有包含我所有的实体和值对象的复杂聚合。我不想要这个。
当从数据库中获取客户时,它不会直接加载他的订单(延迟加载)。所以这不是论据。
如果客户在不同的场景中使用,那么最好清除客户,因为该引用仅在一种场景中有用。我想这是对订单进行汇总并对他的订单进行“间接引用”的原因之一。
那么选择聚合的真正原因是什么?
我还有一个误会。Order 有更多的 OrderLine。OrderLine 有一种产品。为什么允许 OrderLine 引用聚合订单之外的对象(产品)?