2011-12-18 100 views
1

我进入DDD的第一个星期,有几个实体定义了聚合根。如何访问我的聚合根后面的实体?

我读过聚合之外的任何外部实体都不能引用聚集中的实体,所以外部实体必须引用聚合根。

那么,除非我已经错误地建模我的解决方案,否则我需要对聚合根后面的实体的引用。我该如何处理这种情况,还是必须对域进行改造以避免这种情况?

JD

+1

看到一些代码将有助于回答这个问题。 – 2011-12-18 20:41:58

回答

3

您可能可以改进您的模型。如果需要对聚合中的实体进行外部引用,那么这是一个强有力的指示,表明内部实体可能是聚合根本身。

这当然是一般性的建议,因为我不知道你的具体型号。

有关聚合设计的建议,请看paper by Vaughn Vernon。在第一部分“聚合建模”中,他特别强调了我发现非常有启发性的聚合粒度。

+0

谢谢你的回复。我发现我开始将我的实体看作一个聚合根,然后我发现我有很多聚合根引用聚合根,我认为这很好,因为我很可能会使用存储库来访问它们。这听起来正确吗? – 2011-12-19 09:53:01

+0

我不完全同意第一段。我发现“聚合ID +本地(到聚合)实体ID”可以传达到外部并在另一聚合内跟踪。这不是一般性建议,但可能有用。 – 2011-12-19 11:15:34

+0

@Yves,谢谢你的推荐。如果我们有一个深层的图表,并且本地实体有多个深入的对象呢?那么我会跟踪什么(所有入口对象id)? – 2011-12-19 11:55:42