gpt4 book ai didi

domain-driven-design - 根实体对另一个根的引用

转载 作者:行者123 更新时间:2023-12-01 18:26:21 24 4
gpt4 key购买 nike

我面临着一个典型的 DDD 问题。它一定是非常基本的。我有订单和客户。一个客户可以创建多个订单。客户是自身聚合的根源。秩序是其自身聚合的根。但是,当客户创建订单时,我们会在订单上显示部分客户信息。订单汇总是否应保留对客户的引用?当它保存它时,当订单存储库获取订单时,我们也能够检索部分客户信息以供显示。但是,当我们将订单纳入交易时,客户也会参与其中,如果客户同时更新,就会产生问题。请各位大佬指教!我的直觉告诉我,我不能从订单中引用客户。

  • 问题 2:(新)

在创建订单(使用订单工厂)时,我可以获取并保留给定订单的客户引用(从客户存储库)并安全保存订单(无论如何都不更新内部客户,客户仅存在于信息/查询?)如果同一客户在其他地方被修改,则不会产生争用?让我们假设 NHibernate 作为 ORM。

最佳答案

一个简单的答案是您持有客户的 ID,或者如果您的域需要的话,持有一些包含有关客户的最少信息集( ID、名称)的 ValueObject。

一个更复杂的答案是考虑有界上下文。请参阅Eric Evans's presentation他希望将公元前一章作为本书的第一章。

这个想法是,在客户管理限界上下文中,客户实体可以是客户聚合的 AR,订单可以是客户聚合中的实体。在计费有界上下文中,您可以拥有一个订单 AR,其中包含一个客户实体。

关于domain-driven-design - 根实体对另一个根的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com