2011-06-27 42 views
3

我有几类从Admin类继承:ManagerTranslator实体类应该有自己的存储库吗?

Admin是一个聚集,所以应该有自己的。但是,一些找到经理或翻译员的方法可能是特定于这些类的。其他人可能对所有管理员都很普遍。

这里的最佳做法是什么?我应该:

  • 把所有的方法找到管理员在一个存储库?
  • 或模拟具有层次结构的域模型类的层次结构,然后使ManagerRepositoryTranslatorRepository扩展为AdminRepository

回答

3

正如我所见 - 这并不重要。

我会坚持一个AdminRepository除非它膨胀和乞讨分解。

0

严格地说,只有聚合根需要他们自己的存储库。

如果您需要管理某个特定实体而不访问另一个聚合根,那么该实体可以被视为(但不一定)是聚合根本身。

所以我会说:选择你的业务/领域观点,然后画出你的技术结论。

+0

感谢您的回答,但我不确定您是否正确理解问题:Admin是一个聚合根,并且其子类Manager和Translator也是(因此?)聚合。问题不在于我是否应该将它们视为聚合,而是应该共享一个*​​ Repository *还是全部都有一个Repository。 – Benjamin

+1

感谢您的澄清。我的想法是:如果你想对经理和翻译员进行完全相同的操作,那么如果总体来说他们是平等的公民,那么拥有一个单一的存储库是有意义的。如果他们需要不同的处理或不同的操作,那么我认为每个存储库都是最好的。只有我2美分... –

相关问题