【问题标题】:What are read-models within Aggregates in DDD and where to use them?DDD 中聚合中的读取模型是什么以及在哪里使用它们?
【发布时间】:2017-09-23 14:47:44
【问题描述】:

我知道在 DDD 中删除聚合根意味着一次删除聚合边界内的所有内容。

但我注意到,正如 Lev Gorodinski 在此博客中所述,聚合中使用了读取模型(只读属性):http://gorodinski.com/blog/2012/04/25/read-models-as-a-tactical-pattern-in-domain-driven-design-ddd/

但是由于这些模型是聚合的一部分。那么,在删除或更新聚合的情况下,我们如何处理它们?

另外,我们可以使用它们来确保聚合的不变量/一致性吗?

我希望能提供一个关于它们的示例,以及我们如何在不违反 DDD 原则的情况下在聚合中使用它们。

【问题讨论】:

    标签: c# domain-driven-design aggregateroot invariants


    【解决方案1】:

    但是由于这些模型是聚合的一部分。所以,我们如何对待它们 删除或更新我们的聚合的情况?

    它们不是聚合的一部分(聚合是写入模型)。在最好的情况下,它们是一个或多个聚合的视图或投影。

    另外,我们可以使用它们来确保聚合的不变量/一致性吗?

    不,因为它们不是聚合的一部分。您可以将它们用于验证,但在最终一致的预聚合验证中以及在非常特殊的情况下(如果您需要此验证具有强一致性,那么您应该检查您的聚合边界,因为它们可能是错误的)

    附:该博客文章指出,这些读取模型将由 UI 或类似人员使用,而不是由聚合使用。

    【讨论】:

      猜你喜欢
      • 2017-10-02
      • 2017-05-12
      • 2014-06-01
      • 2015-05-30
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多