2012-11-03 128 views
0

我對這種特殊情況三個實體:一個人可以聚合根引用另一個聚合根的非聚合根?

  • 問題(聚合根)
  • QuestionFeedback(未聚合根)
  • QuestionFeedbackCategory(聚合根)

由於QuestionFeedback是內Question,QuestionFeedbackCategory是否也存放QuestionFeedback對象的列表?或者QuestionFeedbackCategory只需要處理Question對象?

+0

你能提供一個更詳細的描述你的域名嗎?例如,QuestionFeedbackCategory和Question或QuestionFeedback之間的關係是什麼? – eulerfx

回答

0

如果問題和QuestionFeedback都有分類,並假設每個只能有一類,我會這樣

public class Question { 
    ... 
    CategoryId categoryId; 
    Set<QuestionFeedback> feedback; 
    ... 
} 

public class QuestionFeedback { 
    ... 
    CategoryId categoryId; 
    ... 
} 

public class Category { 
    CategoryId id; 
    String name; 
    String description; 
} 

你不必把AR本身「內部」另一個AR/VO模型,可以。您可以引用其作爲ID的Value Object。

編輯:請閱讀這裏提到的三篇文章http://dddcommunity.org/library/vernon_2011。從ORM的思維模式來看,我曾經對如何建模這些類型的關係感到困惑。通過聚合

  • 注射內的事件通過構造
    • 但在所有上述選項中,沒有參考是:

    0

    的聚合根可與外部僅在這些情況下進行通信只允許使用陣列(水合物體)。