每个州的一个命令,或一个命令来统治它们

Art*_*his 1 domain-driven-design cqrs

我正在努力分析我正在研究的问题.我处理清洁应用程序,其中安排清洁,然后由一些企业完成,最后由房屋所有者控制.

当企业完成其任务时,它必须向应用程序发送命令,告诉:

  • 工作完成了(StartDate,EndDate)
  • 这项工作完全不是我们的错(评论)
  • 工作没有完成,但这是业主的错(ReasonId)

这些中的每一个都可能使用不同的信息.所以我想使用3个不同的命令来建模它,而不是只有一个并添加一个状态.

但是复杂程度要高一级,因为企业可能会执行3种主要的清理工作,并且可能会对这些命令添加不同的内容(例如:要清理的座位数,或区域和描述) ).

就这一点,它让我已经处理了9个案例.我觉得将所有这些分离是正确的方法,因为它可以在未来实现更大的灵活性.

但我是否正确地认为这3个是不同的东西,如果它们不仅仅是一个大命令:

  • 我告诉你我们做了什么(StateOfWork,StartDate,EndDate,Comment,ReasonId,NbSeat,AreaQuantity,AreaDescription ......)

我完全不喜欢把物体弄半满的想法,因为它涵盖了太多东西......

感谢您的阅读和您的想法,

Ode*_*ded 5

您已经为解耦方法提供了一个很好的理由 - 关注点分离是一个很好的使用原则.

如果每个命令具有不同的含义,则应将其建模为不同的对象.

如果您将每个状态更改建模为不同的对象,那么您就可以获得事件日志,如果需要,还可以使用事件源.

拥有(至少)8个参数的方法是代码气味 - 它告诉我方法做得太多并且最终会变得非常复杂并且难以维护.