代码之家  ›  专栏  ›  技术社区  ›  Josh Anderson

处理DDD中的嵌套聚合

  •  14
  • Josh Anderson  · 技术社区  · 15 年前

    我刚开始使用DDD,在弄清楚如何适应数据的关系性质时遇到了一些困难。我有我认为是我的聚合根,但聚合也有它自己的聚合。我不想违反德米特定律,我想知道我是不是在想这个错误,希望一些DDD专家能提供一些见解。

    我的聚合根是我的 Account 对象,其集合为 AccountElement 实体,它们本身就是个体的逻辑分组 ProductComponent 实体。

    会计工作 账户 没有意义,所以我对我的结论很满意 账户 对象是我的聚合根,我预期该实体具有聚合 Elements 财产。这是 产品组件 使我困惑的收藏。这个集合除了 会计工作 真正地 没有任何意义 账户 .

    我觉得我不应该访问个人 产品组件 通过点状排列的对象,例如:

    var reference = account.Elements(0).ProductComponents(0).ReferenceCode;
    

    但同时(从域的角度)访问 产品组件 直接来自 账户 实体。

    我确信如果不了解我的领域,这一切都有点难以理解,但我希望这足以得到一些好的反馈。

    1 回复  |  直到 12 年前
        1
  •  2
  •   Jamie Ide    15 年前

    罗伯特链接的那篇文章很好。我要补充的是,如果productcomponent只存在于accountElement的上下文中,而accountElement只存在于account的上下文中,那么扩展名productcomponent将位于account的上下文中。