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

问题描述 投票:0回答:1

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

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

所以事情是这样的... “文章”模块具有与

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

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

User
实体之类的东西。

php domain-driven-design hexagonal-architecture
1个回答
0
投票

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

这是 Eric Evans 蓝皮书的样本

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

© www.soinside.com 2019 - 2024. All rights reserved.