【问题标题】:Aggregate for one entity为一个实体聚合
【发布时间】:2015-02-23 21:12:59
【问题描述】:

在域驱动设计中,如果我想使用存储库,我需要对其进行聚合——据我所知。

所以我有一个用户,它有 id、登录名、电子邮件和密码。用户是具有唯一 ID 的域实体。

当我想将一个用户添加到用户存储库时,我是否应该首先构建一个只有聚合根的聚合,它是我的用户实体,仅此而已?在这种情况下,它看起来像是用户的代理,不需要层。

或者我在这里错过了什么?也许用户不是实体,即使它看起来像这样。或者我可以将实体直接放入存储库?

【问题讨论】:

    标签: entity domain-driven-design aggregate ddd-repositories aggregateroot


    【解决方案1】:

    聚合根 (AR) 是一个实体,拥有作为自己聚合根的实体是很常见的。

    您的User 实体只是一个聚合根。您不需要额外的具体类。

    【讨论】:

      【解决方案2】:

      在域驱动设计中,如果我想使用我需要的存储库 它的聚合 - 据我了解。

      我想提出的重要一点是,我们不为存储库创建聚合,我们创建存储库是因为我们需要持久化聚合。

      存储库处理整个聚合,不多也不少。它们保留了应该定义聚合的事务边界。

      当我想将用户添加到用户存储库时,我应该先构建一个 仅聚合作为我的用户实体的聚合根,什么都没有 更多的?在这种情况下,它看起来像是 User 的代理,不需要层。

      单实体聚合绝对没有错。在这种情况下,实体将是聚合根和聚合的整体。

      我建议您阅读 Vaughn Vernon 的 Effective Aggregate Design 系列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-13
        • 1970-01-01
        相关资源
        最近更新 更多