gpt4 book ai didi

c# - 将域服务实现为存储库的扩展方法

转载 作者:行者123 更新时间:2023-11-30 12:16:52 25 4
gpt4 key购买 nike

我对领域服务的理解是它们执行相关存储库边界之外的任务(CRUD 相关任务)。

既然 .Net 允许扩展方法,为什么不将域服务实现为存储库的扩展方法,从而减少在需要时实例化存储库和服务的需要?

如有任何意见,我将不胜感激。

最佳答案

"My understanding of Domain Services is that they perform tasks that are outside the boundaries of the related repository (CRUD related tasks)."

你的理解和我的不一样,是:

Domain Services are used to encapsulate domain logic that falls outside the boundary of a single aggregate/entity/value object.

存储库关心的是存储,而不是域逻辑,因此两者是非常不同的东西。

老实说,我在这里看到的关于 服务的问题越多,我就越觉得围绕什么是 服务存在普遍混淆。我认为这可能是由于以下之间的歧义:

  1. 应用程序服务 - (UI 调用的内容和事务开始的位置)
  2. 基础设施服务 - (例如 IEmailSenderService、ICreditCardPaymentGateway)
  3. 领域服务 - (提供纯领域逻辑,就像聚合/实体一样)

Jimmy Bogard 写了一篇 good article关于他们独特的角色。

所以回答你的问题:这是一个坏主意,因为你会混淆两个截然不同的概念并且会违反 SRP

关于c# - 将域服务实现为存储库的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574125/

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