2013-06-23 90 views
1

Implementing DDD,233頁:下游對象是否總是聚合根?

有些時候在下游語境對象必須是 最終在一個上游上下文與一種或多種集料 的局部狀態是一致的。在這種情況下,我們會設計在 下游消費語境下的聚合,因爲實體被用於維持 線程變化

的連續性,根據筆者,如果需要最終一致性,然後下游對象應始終爲聚合根。是否有一個特別的原因,爲什麼它不應該被設計爲內部實體

UPDATE:

有人可能認爲他們總是需要防止具有幾個下游對象(即反射上游對象的狀態對象)具有相同id根,但如果同步只有一個單向(從上游到下游環境),是否真的沒有兩個下游對象具有相同ID的情況?

謝謝

+0

取決於下游系統是否使用戰術模式。 –

+0

@Yves Reynhout:聚合根和實體是戰術模式。 – EdvRusj

+0

我不完全理解你的問題。說實話,我不認爲下游ID真的很重要。只要您可以從記錄AR系統中找到正確的下游對象。 –

回答

0

我會採取一個裂縫。

他正在談論下游有界上下文,而不是下游對象。這是這裏的重要短語。

在不同的有界上下文中,您需要通過該上下文中的聚合根進行通信,因爲在DDD中建立的規則是所有通信都通過聚合根。您不會直接在該AR內的實體或值對象上調用方法。

另外 - 聚合根是DDD中一致性的單位。正如他所說 - 如果您需要在下游有界上下文中存在的對象的最終一致性,請在該下游有界上下文中設計聚合根(一致性邊界)。