【问题标题】:Reference child element of an Aggregate Root?聚合根的引用子元素?
【发布时间】:2014-12-06 07:43:45
【问题描述】:

我有一个作为实体的单元类(聚合根),并且这个类必须引用省和市。我将省和市放在一个名为 Region (Aggregate Root) 的类中,这个类也是实体。每个省都有自己的城市,它们的名称和关系是永久的,不能更改。

所以到目前为止,我有 两个聚合根,即 Unit 和 Region。但是在单元中我需要参考省和市,但在 DDD 术语中我只能参考我的聚合的根,在这种情况下它是省,我不能参考省的孩子!

如何解决这个问题,如何从单位到省市进行参考?

【问题讨论】:

  • ProvinceCity 应该是聚合根。你为什么将它们与Region 聚集在一起?
  • Tnx @plalx 为您的回复,但城市本身没有任何意义,我的意思是城市是省的孩子,它不能单独存在。在伊朗,我们有省,然后是城市。
  • 如果它没有意义,你为什么要把这个概念与Province以外的东西联系起来?是什么让你觉得它本身没有意义?一个城市通过身份引用它的Region 并拥有它自己的身份。聚合是关于事务边界和不变量执行的。您想通过在Region 中收集城市来解决什么问题?
  • 在 DDD 中,您不会仅仅因为您有“地区有城市”之类的语句而将事物聚集在一起。
  • 谢谢@plalx,在你的帮助下我发现我的假设是错误的。

标签: domain-driven-design


【解决方案1】:

plalx 的帮助下,我发现我对 DDD 的假设是错误的。在这个模型和类似的模型中,我不应该在 Aggregate 中隐藏城市,它们应该是单独 Aggregate 中的 Aggregate Root。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多