.net - Reference Person 类让我感到困惑

标签 .net architecture domain-driven-design

我正在阅读Applying Domain-Driven Design with Examples in C# and .NET 。关于域模型的初始草图,我有两个问题:

  1. 我的母语不是英语,那么“推荐人”在商业领域或一般英语中到底意味着什么?
  2. 作者在草图上评论说,虽然“Reference Person”类在图中出现在两个不同的聚合中,但在运行时它们是同一个实例,这怎么可能?如果聚合根被垃圾收集,这是否会导致收集该实例,从而使其他聚合不稳定?

最佳答案

这里我贴出我们正在讨论的图片:

enter image description here

  1. 客户有时是一个组织,而不是个人,它可能有一个您可以联系的引用人员列表。我们可以说,引用人是代表一个组织的人。 (聚合1)

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

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

    <

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

关于.net - Reference Person 类让我感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147709/

相关文章:

c# - 枚举作为标志使用、设置和移动

c# - .NET 的 SFTP 库

php - 如何更好地解耦我的数据层并限制我的单元测试范围?

php - 在 oneToMany 关系中创建和删除子项的正确 DDD 方法?

c# - datagridview 虚拟模式,更新 RowCount 导致 CellValueNeeded 为所有行触发

c# - 使用规则将字符串转换为树表示

assembly - 为什么在 Mips 架构中寄存器 $a1 总是打印 0

java - 当前开发/打包/分发(大型)Java(Web)应用程序的方式有什么问题?

architecture - 确定 DDD 架构中的存储库和聚合大小以及责任

domain-driven-design - 重写软件时如何处理遗留数据完整性问题?