DDD是聚合类还是隐含的?

时间:2016-11-25 14:24:38

标签: domain-driven-design

我的意思是,有没有PersonAggregate课程?我明白它不存在。我只有一个实体作为聚合根。这是对的吗?

4 个答案:

答案 0 :(得分:2)

  

我只有一个实体作为聚合根。这是对的吗?

这是正确的。

聚合是隐式的 - 它是分隔两个可以彼此独立修改的不相交状态集的边界。同样,聚合是模型中业务状态的图形,可以在不咨询图形外的状态的情况下进行修改,反之亦然。

聚合根是显式的。这是图中暴露的单个实体 - 也就是说它作为进入图的所有修改必须通过的入口点。

假设您可以实现一个具有两个不同的公开实体的聚合,每个实体都可以执行命令来修改状态; Evans引入了单个聚合根的概念,因为多个入口点难以正确。

答案 1 :(得分:1)

我已经看到了项目中使用的两种解决方案,但大多数情况下人们使用此后缀。

一个有趣的解决方案是使聚合类公共和非聚合类包(默认)。您可以直接从IDE中看到哪些类具有哪种可见性,您可以轻松确定哪些是聚合。此外,非公开类不能在包外使用,这是一个原始意图。

答案 2 :(得分:1)

我的理解是聚合根是一个实体,但实体可能不是聚合根。因此,我查看“聚合根”'更像是stereotype

答案 3 :(得分:0)

不在域驱动设计中。这将向领域专家揭示技术术语,实质上是实施细节