2

我有以下數據結構:記住什麼是正確的聚合根?

class Post 
{ 
    public string Title { get; set;} 
    public Category Category { get; set;} 
} 

軸承後總是屬於唯一一類是我的推理是否正確?

  • Category是聚合根(因爲後不能沒有它存在)
  • 應該有CategoryRepository(用方法如GetCategoryGetPost),但不是一個PostRepository(因爲Post不是彙總根)
+0

我沒有得到你沒有考慮擁有'PostRepository'的觀點。可能有'GetPost'在'CategoryRepository'中很合乎邏輯,但'Post'有它自己的唯一目的。請讓我知道,如果我錯過了任何東西 –

+1

@MunimAbdul由於'Post'不是聚合根,只能爲聚合根創建存儲庫。 –

回答

5

你想如何引用Post的實例?是Post.TitlePost的唯一標識符?如果是這樣,那麼Post一個有效的聚合根,你應該創建一個PostRepository,它檢索Post的實例,因爲它是Title

舉一個車的例子。一輛汽車必須有一種顏色,但說明顏色是聚合根,因爲汽車不能沒有汽車就不存在是不對的。我想單獨參考一輛汽車,因爲它的車牌號碼(與其顏色無關)。它必須具有顏色的事實僅僅是我的汽車領域模型的一個特徵,它指出我不能在不提供顏色的情況下構造汽車實例。

+0

這是一個很好的觀點。將您的答覆標記爲答案。 –

+0

另一個很好的例子 - 標籤。在編寫有關編程的文章之前,您不要創建標籤「編程」,而是關聯它。 –