我有幾類從Admin
類繼承:Manager
,Translator
等實體類應該有自己的存儲庫嗎?
Admin
是一個聚集,所以應該有自己的庫。但是,一些找到經理或翻譯員的方法可能是特定於這些類的。其他人可能對所有管理員都很普遍。
這裏的最佳做法是什麼?我應該:
- 把所有的方法找到管理員在一個存儲庫?
- 或模擬具有層次結構的域模型類的層次結構,然後使
ManagerRepository
和TranslatorRepository
擴展爲AdminRepository
?
我有幾類從Admin
類繼承:Manager
,Translator
等實體類應該有自己的存儲庫嗎?
Admin
是一個聚集,所以應該有自己的庫。但是,一些找到經理或翻譯員的方法可能是特定於這些類的。其他人可能對所有管理員都很普遍。
這裏的最佳做法是什麼?我應該:
ManagerRepository
和TranslatorRepository
擴展爲AdminRepository
?正如我所見 - 這並不重要。
我會堅持一個AdminRepository
除非它膨脹和乞討分解。
嚴格地說,只有聚合根需要他們自己的存儲庫。
如果您需要管理某個特定實體而不訪問另一個聚合根,那麼該實體可以被視爲(但不一定)是聚合根本身。
所以我會說:選擇你的業務/領域觀點,然後畫出你的技術結論。
感謝您的回答,但我不確定您是否正確理解問題:Admin是一個聚合根,並且其子類Manager和Translator也是(因此?)聚合。問題不在於我是否應該將它們視爲聚合,而是應該共享一個* Repository *還是全部都有一個Repository。 – Benjamin
感謝您的澄清。我的想法是:如果你想對經理和翻譯員進行完全相同的操作,那麼如果總體來說他們是平等的公民,那麼擁有一個單一的存儲庫是有意義的。如果他們需要不同的處理或不同的操作,那麼我認爲每個存儲庫都是最好的。只有我2美分... –