在DDD中聚合根和存储库

时间:2016-07-15 03:01:51

标签: domain-driven-design ddd-repositories aggregateroot

我刚刚开始使用DDD并遇到术语聚合根。

我目前的理解是,这是一种包含其他互补实体的父实体。示例:聚合根将是员工,其中还包含职位,班次,性别,工资。 我的第一个问题是这种理解是否正确?

其次,我得到的印象是只为每个聚合定义了存储库。然而,我们如何能够检索有关其他实体的信息(例如:职位列表或班次类型)让我感到困惑?

谢谢,

1 个答案:

答案 0 :(得分:3)

聚合是一致性边界以强制执行不变量。这意味着聚合内的实体和对象必须与业务规则保持一致。

  

其次,我得到的印象是只为每个聚合定义了存储库。然而,我们如何能够检索有关其他实体的信息(例如:职位列表或班次类型)让我感到困惑?

如果您选择这样做,您可以对数据建立单独的读取模型,并且企业希望以不同的方式查看数据。在编写数据时需要强制执行的一致性不适用于读取方。 CQRS是帮助解决此问题的模式 - 您将写作方与读取方分开。

https://lostechies.com/gabrielschenker/2015/04/07/cqrs-revisited