【发布时间】:2017-05-15 09:04:45
【问题描述】:
我有一个应用程序服务 (AppService) 和一个从外部数据提供者读取数据的基础架构存储库 (InfraRepo)。 AppService 调用 InfraRepo 并向客户端返回数据。 我有以下需求:我有一些过滤条件和业务逻辑。为此,我创建了一个域服务 (DomainService) 并将其注入 InfraRepo。从外部数据提供者(在 InfraRepo 中)检索数据后,我调用域服务,将数据传递到那里,然后取回结果。然后我将结果返回给映射到 Dto 并返回给客户端的应用服务。 在基础设施存储库中调用域服务是否正确。
【问题讨论】:
-
afaik 在 DDD 中只有服务应该使用 repos,而不是相反
-
好的。您将如何实现我上面描述的内容?
-
您的
AppService可以使用DomainService来检索数据。然后DomainService可以委托给InfraRepo来检索数据,然后在返回到AppService之前过滤和应用规则。这样InfraRepo就不再需要了解领域业务逻辑,可以专注于数据检索。 -
所以我可以从域服务调用 InfraRepo?
-
我想知道你的聚合根在哪里。
标签: domain-driven-design ddd-repositories ddd-service