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