汇总的参考子实体-谁可以?

问题描述 投票:1回答:1

问候,

[学习DDD时,我阅读了有关Aggregate的以下规则:

“除了AGGREGATE边界之外,没有任何东西可以引用内部的任何东西,除了根ENTITY”。

但是,我看到了this aggregate,特别是属性OrderItems,一个IReadOnlyCollection,它打破了此规则,在调用时将引用传递给外部。

我认为,如果被允许获得对子实体的引用,则可以调用该实体的方法,从而在不了解各自聚合的情况下更改其状态。

像上面的代码那样,聚合将对子实体的引用交给一个对象没有错吗?

domain-driven-design aggregate cqrs
1个回答
0
投票

我对eShopOnContainers的订单汇总的解释是,订单实体是汇总根(已实现IAggregateRoot接口,并且注释从line 70开始)。

因此,OrderItem实体位于订单聚合根中,而IReadOnlyCollection OrderItems的字段为私有只读。有一些OrderItem的公共方法,但是好像Order下方的示例封装OrderItem。

© www.soinside.com 2019 - 2024. All rights reserved.