我的意思是,有没有PersonAggregate
课程?我明白它不存在。我只有一个实体作为聚合根。这是对的吗?
答案 0 :(得分:2)
我只有一个实体作为聚合根。这是对的吗?
这是正确的。
聚合是隐式的 - 它是分隔两个可以彼此独立修改的不相交状态集的边界。同样,聚合是模型中业务状态的图形,可以在不咨询图形外的状态的情况下进行修改,反之亦然。
聚合根是显式的。这是图中暴露的单个实体 - 也就是说它作为进入图的所有修改必须通过的入口点。
假设您可以实现一个具有两个不同的公开实体的聚合,每个实体都可以执行命令来修改状态; Evans引入了单个聚合根的概念,因为多个入口点难以正确。
答案 1 :(得分:1)
我已经看到了项目中使用的两种解决方案,但大多数情况下人们不使用此后缀。
一个有趣的解决方案是使聚合类公共和非聚合类包(默认)。您可以直接从IDE中看到哪些类具有哪种可见性,您可以轻松确定哪些是聚合。此外,非公开类不能在包外使用,这是一个原始意图。
答案 2 :(得分:1)
我的理解是聚合根是一个实体,但实体可能不是聚合根。因此,我查看“聚合根”'更像是stereotype。
答案 3 :(得分:0)
不在域驱动设计中。这将向领域专家揭示技术术语,实质上是实施细节