2011-06-27 56 views
3

我有幾類從Admin類繼承:ManagerTranslator實體類應該有自己的存儲庫嗎?

Admin是一個聚集,所以應該有自己的。但是,一些找到經理或翻譯員的方法可能是特定於這些類的。其他人可能對所有管理員都很普遍。

這裏的最佳做法是什麼?我應該:

  • 把所有的方法找到管理員在一個存儲庫?
  • 或模擬具有層次結構的域模型類的層次結構,然後使ManagerRepositoryTranslatorRepository擴展爲AdminRepository

回答

3

正如我所見 - 這並不重要。

我會堅持一個AdminRepository除非它膨脹和乞討分解。

0

嚴格地說,只有聚合根需要他們自己的存儲庫。

如果您需要管理某個特定實體而不訪問另一個聚合根,那麼該實體可以被視爲(但不一定)是聚合根本身。

所以我會說:選擇你的業務/領域觀點,然後畫出你的技術結論。

+0

感謝您的回答,但我不確定您是否正確理解問題:Admin是一個聚合根,並且其子類Manager和Translator也是(因此?)聚合。問題不在於我是否應該將它們視爲聚合,而是應該共享一個*​​ Repository *還是全部都有一個Repository。 – Benjamin

+1

感謝您的澄清。我的想法是:如果你想對經理和翻譯員進行完全相同的操作,那麼如果總體來說他們是平等的公民,那麼擁有一個單一的存儲庫是有意義的。如果他們需要不同的處理或不同的操作,那麼我認爲每個存儲庫都是最好的。只有我2美分... –

相關問題