首页  >  问答  >  正文

管理 DDD 中聚合之间的“用户”实体

我正在尝试使用 DDD 和六边形架构将整体式应用程序重写到模块化整体式应用程序上。首先尝试提取三个模块(聚合):“Shared”、“User”和“Article”。

据我正确理解,“用户”和“文章”之间不应创建任何依赖关系。但是,它们都可以使用“共享”模块中的内容。

所以事情是这样的...... “文章”模块具有 Article 实体,该实体与 User 实体相关。从 DDD 的角度来看,它是特定文章的创建者。将会有更多类似的模块与 User 实体作为资源的作者或所有者相关。

应该如何实施?是否应该将其移至“共享”?不幸的是,找不到任何特定的资源。 Github 主要包含具有单个聚合的项目,并且没有诸如 User 实体之类的项目。

P粉775788723P粉775788723221 天前585

全部回复(1)我来回复

  • P粉215292716

    P粉2152927162024-04-05 09:05:19

    我一直在寻找解决此类问题的不同方法。你可以创建一个共享聚合,没有人可以说这是错误的。但是,我认为最好的解决方案是您创建一个 Person (或 People)聚合,其中您可以有一个与 ArticleEntity 相关的 PersonEntity (或 AuthorEntity),聚合之间的关系没有问题,但我建议您尝试仅在聚合之间创建关系根。

    这是 Eric Evans 蓝皮书的样本

    请注意,Voyage 是 Aggregate Voyage 中的 AggregateRoot,它与 Location 聚合的 AggregateRoot Location 存在关系。

    回复
    0
  • 取消回复