Domain driven design 域服务是否可以注入多个存储库或使用不同的聚合根进行操作?

Domain driven design 域服务是否可以注入多个存储库或使用不同的聚合根进行操作?,domain-driven-design,domainservices,Domain Driven Design,Domainservices,域服务是否可以注入多个存储库或使用不同的聚合根进行操作?如果是,是否会被视为违反SRP原则 我正在深入研究,我有一个关于域服务的问题。如果我有一个涉及多个聚合根的业务逻辑,那么使用域服务解决它的最佳方法是什么 谢谢 域服务是否可以注入多个存储库或使用不同的聚合根进行操作 我认为这没有问题,因为我发现使用多个聚合通常是您需要域服务的地方,因为该功能似乎不适合特定的聚合。如果服务没有获取相关对象,则可以从集成/应用程序关注点传入这些对象。事实上,您可能希望从这里开始:一个接受相关聚合的方法。您可能会

域服务是否可以注入多个存储库或使用不同的聚合根进行操作?如果是,是否会被视为违反SRP原则

我正在深入研究,我有一个关于域服务的问题。如果我有一个涉及多个聚合根的业务逻辑,那么使用域服务解决它的最佳方法是什么

谢谢

域服务是否可以注入多个存储库或使用不同的聚合根进行操作

我认为这没有问题,因为我发现使用多个聚合通常是您需要域服务的地方,因为该功能似乎不适合特定的聚合。如果服务没有获取相关对象,则可以从集成/应用程序关注点传入这些对象。事实上,您可能希望从这里开始:一个接受相关聚合的方法。您可能会发现,在调用服务方法之前检索调用方中的对象更有意义

如果是,是否会被视为违反SRP原则


SRP是关于你的类做了什么,而不是它使用了什么,所以除非你添加了比所需更多的功能,否则我看不出SRP是如何受到负面影响的。

非常感谢你的回答。对于应用程序服务呢?这是否应该/是否可以注入不同的存储库以向域服务提供不同的AR?还是应该采取不同的做法?在CQRS场景中,我理解最好是注入QueryBus,而不是从其他模块检索信息的另一个应用程序服务或Repository。应用程序服务通常处理ID并检索相关对象。然后将这些数据传递给域服务。是的,您可以注入依赖项,但是如果依赖项太多,您可以选择中介。我知道Jimmy Bogard的
MediatR
很受欢迎,但我有一个不依赖于接口的方法。在任何情况下,当涉及到布线依赖性时,我想我们都需要务实。但是使用你熟悉的机制/技术。