2011-12-18 46 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