Design patterns 存储库模式问题-在不同的存储库中使用回购协议是否可以接受?

Design patterns 存储库模式问题-在不同的存储库中使用回购协议是否可以接受?,design-patterns,repository,repository-pattern,entities,Design Patterns,Repository,Repository Pattern,Entities,所以我基本上为每个实体都有一个存储库,但我的模型有一个关系部门,其中实体在模型中没有直接关联。所以我需要做的是查询这个间接关系并返回一个实体集合。在与实际查询的存储库不同的存储库上初始化和调用查询是否合适?如果不是,那么最好的解决方案是什么-助手类 谢谢为每个实体建立一个存储库可能不是一个好主意。应存在聚合根对象的存储库。为这些对象定义聚合根对象和提供程序存储库。当存储库依赖于其他存储库时,这可能会消除一些混乱 为每个实体建立一个存储库可能不是一个好主意。应存在聚合根对象的存储库。为这些对象定义

所以我基本上为每个实体都有一个存储库,但我的模型有一个关系部门,其中实体在模型中没有直接关联。所以我需要做的是查询这个间接关系并返回一个实体集合。在与实际查询的存储库不同的存储库上初始化和调用查询是否合适?如果不是,那么最好的解决方案是什么-助手类


谢谢

为每个实体建立一个存储库可能不是一个好主意。应存在聚合根对象的存储库。为这些对象定义聚合根对象和提供程序存储库。当存储库依赖于其他存储库时,这可能会消除一些混乱

为每个实体建立一个存储库可能不是一个好主意。应存在聚合根对象的存储库。为这些对象定义聚合根对象和提供程序存储库。当存储库依赖于其他存储库时,这可能会消除一些混乱

我同意-尝试确定聚合根。如果您不熟悉aggreagate根:


不过,在我看来,您最初的问题仍然有效,您可能仍然依赖于其他存储库。根据您的域模型,有这些依赖项是可以的。如果您有这样的依赖项,那么将它们与接口松散耦合是一个很好的设计。然后,您可以使用某种依赖项注入来简化测试等。另一种选择是让工厂为您提供正确的存储库。

我同意-尝试识别聚合根。如果您不熟悉aggreagate根:

不过,在我看来,您最初的问题仍然有效,您可能仍然依赖于其他存储库。根据您的域模型,有这些依赖项是可以的。如果您有这样的依赖项,那么将它们与接口松散耦合是一个很好的设计。然后,您可以使用某种依赖项注入来简化测试等。另一种选择是让工厂为您提供正确的存储库