【问题标题】:Domain driven design and aggregate references领域驱动设计和聚合参考
【发布时间】:2012-07-24 13:06:23
【问题描述】:

我正在设计领域模型,但有些东西似乎不太好。

我从一个主要聚合开始。它引用了其他聚合,而那些其他聚合也引用了更多聚合。我可以从主聚合开始遍历洞域模型。

我看到的问题是我将在内存中保存所有聚合实例。

这是一个好的设计吗?我可以通过延迟加载来解决内存问题,但我认为我有更深层次的问题。

我还有一个关于聚合引用的问题。我应该懒惰地加载对其他聚合的引用吗?如果是这种情况,我几乎不会使用他们的存储库。可以吗?

【问题讨论】:

    标签: repository domain-driven-design aggregateroot aggregates


    【解决方案1】:

    在聚合根 (AR) 之间直接引用可能会导致延迟加载无法解决的问题。此外,它强制所有连接的 AR 位于同一个数据库中,这使得推理和执行不变量变得更加困难,而这首先是 AR 的主要目的。最好限制或消除 AR 之间的直接引用。了解聚合设计的一个很好的资源是series of articlesVaughn Vernon。基本思想是让您的 AR 精益求精并专注于所有功能,同时牢记其功能 - 执行业务约束并围绕根实体建立边界。如果一个 AR 需要来自另一个 AR 的数据来执行其工作,则该数据可以由应用程序服务通过存储库提供给它。此外,如果仅需要引用来满足 UI 要求,请考虑使用 read-model pattern

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 2013-09-16
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2010-11-30
      • 2019-06-27
      相关资源
      最近更新 更多