Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 参考人类让我很困惑_.net_Architecture_Domain Driven Design - Fatal编程技术网

.net 参考人类让我很困惑

.net 参考人类让我很困惑,.net,architecture,domain-driven-design,.net,Architecture,Domain Driven Design,我现在正在读书。关于域模型的初始草图,我有两个问题: 我不是以英语为母语的人,那么“推荐人”在商务领域或一般英语中到底是什么意思 作者在草图上评论说,尽管“referenceperson”类在图上以两种不同的聚合形式出现,但在运行时它们是同一个实例,这怎么可能呢?如果一个聚合根被垃圾收集,这不会导致收集该实例,从而使另一个聚合不稳定吗 在这里,我发布了我们正在讨论的图片: 客户有时是一个组织,而不是个人,它可能有一个您可以联系的参考人员列表。我们可以说,推荐人是代表一个组织的人。(合计1) 当

我现在正在读书。关于域模型的初始草图,我有两个问题:

  • 我不是以英语为母语的人,那么“推荐人”在商务领域或一般英语中到底是什么意思
  • 作者在草图上评论说,尽管“referenceperson”类在图上以两种不同的聚合形式出现,但在运行时它们是同一个实例,这怎么可能呢?如果一个聚合根被垃圾收集,这不会导致收集该实例,从而使另一个聚合不稳定吗
    在这里,我发布了我们正在讨论的图片:

  • 客户有时是一个组织,而不是个人,它可能有一个您可以联系的参考人员列表。我们可以说,推荐人是代表一个组织的人。(合计1)

    当客户想要下订单时,我们还需要确切地知道与我们交谈的人。(合计2)

  • 您应该仔细阅读,作者在书中评论道“类ReferencePerson在图4-13中处于两个不同的聚合中,但实例并非如此”。这意味着当您同时从数据库加载订单和客户时,order.ReferencePerson和customer.ReferencePersons[index]不会指向内存中的同一对象,即使它们是同一个人


  • 此外,即使它们指向同一个实例,.Net中的对象在没有引用时也会被收集。如果聚合1已收集,但聚合2仍有对ReferencePerson a的引用,则a仍未收集。

    +1用于发布图片(我真的应该这样做)。关于第二个答案,请您提供进一步的解释,以及关于删除客户,您可以说些什么,例如,这难道不会导致所有的引用人都离开,现在Order会指向一个空引用吗?@Sniffer:我更新了答案,这让我很困惑,因为我更喜欢将它们视为两个聚合共享的单个实例,否则我们将如何处理冲突(参考人在一个总体上发生了变化,但在另一个总体上没有发生变化,即使他们是同一个人)?