![]() |
1
17
如果要从一个与foo无关的条列表中进行选择,则这不是聚合根。例如,如果没有医嘱,则无法获取医嘱项目列表,因此这是单个聚合根(医嘱),但可以获取要分配给医嘱项目的产品列表,因此产品不是医嘱聚合根的一部分。 注意,虽然orderitem是order aggregate根目录的一部分,但您仍然可以独立地创建和更新它。但是,如果没有订单,你就不能得到它。对于您的条也是一样的,即使它是foo的一部分,您也可以获取每个(foo.bar)并使用它,或者执行foo.addbar(new bar())。但是如果你需要得到没有foo的列表,那么bar不是foo聚合的一部分。它是一个独立的实体。 嗯,我就是这么看DDD的,但我当然不是埃里克·埃文斯。 |
![]() |
2
8
有聚合根的原因是:
我的拿手:
如果需要选择
但是…
如果你更新了
但是,如果您需要访问
记住,聚合根可以由其他聚合根组成。你可能会发现
|
![]() |
3
2
你确定酒吧需要成为一个实体吗?您是否需要在域中跟踪并更改它?如果您可以将其视为一个值对象,我建议您从服务中获取它,然后将所选值对象“连接”到foo实体。在下拉列表中显示。 |
![]() |
Tony Raimo · 域实体是否应该调用存储库? 7 年前 |
![]() |
Seb · DDD只读存储库返回“值对象” 7 年前 |
![]() |
tlt · 使用嵌套对象和大集合进行聚合根优化 7 年前 |
![]() |
PatrickSJ · DDD,状态对象/值对象 7 年前 |
![]() |
msmani · DDD更改聚合根id 7 年前 |
![]() |
DuskMcDusk · 逻辑和性能中的聚合根冲突 7 年前 |