POCO /领域对象可以注入依赖项吗?

3

这是我当前业务层的代码结构 -

  • UserManager(服务类)处理User(领域对象)
  • CompanyManager(服务类)处理Company(领域对象)

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

  • IUnitOfWork - (使用IUserRepository、ICompanyRepository)

我读过一些文章,说领域对象不应该依赖于仓储。所以我的问题分为两部分 -

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

谢谢!


领域对象不应该依赖于 IUnitOfWork。 - Keith Nicholas
2
"UserManager(服务类)操作User(领域对象)" - 这里的“操作”是什么意思? - Constantin Galbenu
1个回答

5
在DDD中,领域层将是封装所有领域逻辑的最内层。建议您的领域类不要有任何依赖关系。
在您的情况下,使用领域事件是理想的选择。
公司领域应该引发一个事件,例如“OnPolicyChanged”,并且应该在UserManager中监听此事件,并调用User领域中的领域逻辑。
在您的领域层中包含持久性逻辑并不理想。它应该在更高的层次上,例如服务/基础设施层,该层应该将更改提交到数据库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接