gpt4 book ai didi

c# - POCO/Domain 对象是否可以注入(inject)依赖项

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

这是我目前的业务层代码结构——

  • UserManager(服务类)作用于 User(域对象)
  • CompanyManager(服务类)在 Company(域对象)上工作

现在,我的两个领域对象都依赖于

  • IUnitOfWork -(使用 IUserRepository、ICompanyRepository)

我读过一些文章,其中说域对象不应该对存储库有任何依赖性。所以我的问题分为两部分 -

  1. 域对象是否不应有任何依赖关系?在上述情况下,如果对“Company”的某些操作应该触发对“User”的某些操作,那么 Company 对象是否可以依赖于 UserManager?
  2. 如果域对象不应该有依赖关系,那么我应该在哪里保存这些逻辑?我应该在哪里调用存储库上的保存方法,或者当“公司”发生某些事情时调用 UserManager?

谢谢!

最佳答案

在 DDD 中,领域层将是封装所有领域逻辑的最内层。建议不要在您的域类中有任何依赖项。

在您的场景中,使用 Domain Events 是理想的选择

  1. 公司域应该引发一个事件,例如“OnPolicyChanged”,此事件应在 UserManager 中监听,并且管理器应调用用户域中的域逻辑。

  2. 在您的域层中包含持久性逻辑并不理想。它应该处于更高级别,例如应将更改提交到数据库的服务/基础架构层。

关于c# - POCO/Domain 对象是否可以注入(inject)依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44192509/

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