我正在尝试在宠物项目中应用 CQRS:在我的示例中,有Food
and Course
。
一个课程由许多不同的食物组成。
在我的设计中,我有这些命令:
AddFoodToCourse
ChangeFoodQuantityInCourse
ETC...
如果我创建一个 CourseCommandHandler 我将获得一个 ICourseRepository 作为依赖项以修改课程但保持命令简单我将拥有 CourseId 和 FoodId 属性而不是 Food。
在处理程序中,我想只管理 ID 并从存储库中获取所有相关数据?
如果我理解正确,我的应用程序必须遵循以下工作流程:
使用ReadModel
=> 创建命令并发送到总线 =>CommandHandler
使用命令,操作domain object
并保存对象repositories
=>Domain objects
引发事件并发布到总线 =>EventHandler
使用事件并修改ReadModel
对象