2013-10-09 107 views
0

我需要實現一個項目與CQRS,但我對什麼實體獲得相應的命令和查詢類的疑問。CQRS和領域模型

如果我有類A,B和C,A是我的聚合根,其他是我的聚合中的子實體,那麼哪些類應該有命令和查詢類?

我的意思是,我應該有一個QueryA,QueryB和QueryC,或者我應該只有QueryA,它會使用延遲加載的子數據?

對於存儲庫,正如我對領域模型的理解,我只考慮了RepositoryA(對於我的聚合根)。

回答

7

查詢不是每個聚合,而是基於每個查看。例如說你有一個客戶賬戶並希望顯示

  1. 帳戶列表
  2. 帳戶信息機密信息(如信用卡詳細信息)
  3. 帳戶的細節而不信息保密

這將是三個查詢,每個視圖一個。通常沒有像懶惰加載這樣的痛苦事情。要麼你需要一些特定視圖的信息,要麼你不需要。

命令也不是每個聚合。你會對每一個行爲都有一個命令。像OpenAccount,CloseAccount,MergeAccounts等。