子实体类应该有自己的存储库吗?

时间:2011-06-27 12:40:39

标签: orm domain-driven-design ddd-repositories domain-object

我有几个继承自Admin班级的班级:ManagerTranslator等。

Admin是一个聚合,因此应该拥有自己的存储库。但是,查找管理器或转换器的某些方法可能特定于这些类。其他人可能对所有管理员都很常见。

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

  • 将所有方法放在一个存储库中查找管理员?
  • 或模仿具有存储库层次结构的域模型类的层次结构,然后ManagerRepositoryTranslatorRepository扩展AdminRepository

2 个答案:

答案 0 :(得分:3)

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

我会坚持使用一个AdminRepository,除非它膨胀并乞求分解。

答案 1 :(得分:0)

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

如果您需要在不访问其他聚合根的情况下管理特定实体,则可以将该实体视为(但不一定)聚合根本身。

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