在CQRS模式中,应该在域服务或命令处理程序中工作

use*_*167 9 c# cqrs

域服务是否应该注入其他域服务并在彼此之间工作并使命令处理程序变得愚蠢.或者,域服务是否应该是哑的(仅用于连接存储库障碍),而大多数工作都是在commandhandler中完成的?这里的最佳做法是什么......

sve*_*vit 8

我想说在域对象中添加所有业务逻辑(如果功能不适合对象,还要添加域服务),并使用命令处理程序,例如:

  • 实例化域对象并在其上运行方法,
  • 在域服务上运行方法,
  • 提供域对象的依赖项,
  • 管理数据库事务,
  • ...

您可以查看洋葱架构,我猜您的域服务位于域模型和Application Services内的命令处理程序中.