gpt4 book ai didi

service - DDD 在存储库中使用服务

转载 作者:行者123 更新时间:2023-12-01 09:01:01 24 4
gpt4 key购买 nike

问题:

我正在从 XML 提要中提取第三方数据。我需要获取这些数据并将其转换为实体。

讨论要点:

我的问题是在这种情况下如何使用服务和存储库。因此,例如,我可以创建一个从提要中提取数据的服务,然后将该服务注入(inject)到存储库中,然后可以使用它来提取数据并将其转换为实体。但我不确定这是否是正确的方法?

存储库可以具有提取数据然后将其映射到实体的逻辑,但我认为存储库不应该处理该逻辑?还是应该?

从 DDD 关注点分离的角度来看,应该如何最好地构建它?

最佳答案

I could create a Service that pulls the data from the feed, and then inject that service into the Repository.



这在 DDD 中不会被视为域服务,因为它与域无关。这纯粹是技术基础设施问题。

My question is how to use Services and Repositories in this case.



听起来您在这里可能有两个不同的问题。存储库显然根据有界上下文提供了对数据的访问,但我敢打赌,在 XML 数据和存储库之间还有一些额外的数据操作/转换......

在 DDD 术语中,这将被视为一个反腐败层。您无法控制外部数据源,并且希望防止此外部数据的格式破坏您精心设计的域模型的完整性。

可以将反腐败层注入(inject)存储库 - 只要其目的明确定义即可。这不会被视为域服务,因为它与域无关,它是由外部数据源的性质驱动的纯粹制造。

关于service - DDD 在存储库中使用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17092982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com