将请求提取到多个命令中是一种好习惯吗?

时间:2016-09-20 18:36:37

标签: oop design-patterns command cqrs

在我的系统中,当一个新事务添加到系统时,该请求具有以下信息

  • A)进行交易的客户
  • B)如果交易将分期付款,并且频率如此 分期付款(每月,证据15天等)

此外,如果交易不按分期付款,分析数据必须更新(明确当月等)。

因此,当用户提交的新交易必须完成以下时

  • 1)如果请求中的客户端不存在,请添加新客户端
  • 2)将新交易添加到数据库

    如果有分期付款

  • 3)将分期付款添加到数据库

否则

  • 4)更新分析数据

因此解决方法是在我的控制器AddnewTransactionController将请求解压缩到两个单独的命令AddNewClientCommand AddNewTransactionCommand并调用相关的命令处理程序AddNewClientCommandHadler AddNewTransactionCommandHandler

AddNewTransactionCommandHandler也会注入像UpdateanalysisData这样的域名服务。

从架构的角度来看,上述内容是否是一个很好的解决方案?

1 个答案:

答案 0 :(得分:1)

我通常希望将该方法作为一个过程实现,而不是作为一组命令实现。

客户承诺下订单,也就是说我们解决方案边界之外的某个远程实体为我们提供了获得一些商业价值的机会。所以当务之急是抓住这个机会。 因此,您将这个机会写入耐用商店,并发布域事件。

为了响应域事件,现在可以触发一堆其他命令(从域事件中提取所需的数据,或者在商店中提供商机的表示)。