我正在阅读Applying Domain-Driven Design with Examples in C# and .NET 。关于域模型的初始草图,我有两个问题:
- 我的母语不是英语,那么“推荐人”在商业领域或一般英语中到底意味着什么?
- 作者在草图上评论说,虽然“Reference Person”类在图中出现在两个不同的聚合中,但在运行时它们是同一个实例,这怎么可能?如果聚合根被垃圾收集,这是否会导致收集该实例,从而使其他聚合不稳定?
最佳答案
这里我贴出我们正在讨论的图片:
客户有时是一个组织,而不是个人,它可能有一个您可以联系的引用人员列表。我们可以说,引用人是代表一个组织的人。 (聚合1)
当客户想要下订单时,我们还需要确切地知道正在与我们交谈的人。 (合计 2)
你应该仔细阅读,作者在书中评论道“ReferencePerson 类位于图 4-13 中的两个不同的聚合中,但实例不是”。这意味着当您从数据库同时加载订单和客户时,Order.ReferencePerson 和 Customer.ReferencePersons[index] 不会指向内存中的同一个对象,即使它们是同一个人。
<
此外,即使它们指向同一个实例,在 .Net 中,当没有引用它们时,对象也会被收集。如果聚合 1 已被收集,但聚合 2 仍具有对引用人 A 的引用,则 A 仍未被收集。
关于.net - Reference Person 类让我感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147709/