什么是聚合的真实世界类比?

时间:2014-02-14 13:26:18

标签: domain-driven-design

当我看看我们的办公室时,我立即想到了一些实体和价值对象。

例如,来自post-block的空帖子肯定是一个值对象,因为它无法与同一块上的任何其他空帖子区分开来,我并不在乎所有关于哪个我使用的帖子如果我需要一个空的。

相比之下,我和我的同事肯定是实体,因为我们每个人都有自己的身份。

表可能是实体或值对象,具体取决于您查看它的方式(它是否与任何其他表一样好,或者它是您的表?)。

当然,YMMV。

所以,既然我已经找到了对实体和价值对象的一些现实世界的类比 - 那么聚合的类比是什么呢?有吗?

我可以想象,了解聚合实际上是什么有助于理解它背后的概念。

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

蓝皮书中的例子:汽车。

汽车(实体,由车辆识别号码识别)有4个轮子(实体,由左前,左后,右前,右后)识别。

当我开车时,我不需要(并且想要)知道车轮是如何工作的。汽车实体将它作为聚合根封装起来。

蓝皮书中的另一个例子:采购订单。

在任何时候,子采购订单(本地实体)的总量不能大于purcahse订单的限制(在这种情况下为聚合根)。聚合根应始终检查约束。