【发布时间】:2019-12-30 11:14:39
【问题描述】:
在显示多个订单明细行的屏幕中,用户可以添加、更新或删除行或列,然后单击“保存”按钮以保存一笔交易中的所有订单更改.
选项1:创建一个命令(将由按钮的Clicking 事件创建),说UpdateOrderCommand,它具有复杂的内部数据结构,可用于所有更改。该命令会将更改应用到数据库表。 (因此 UI 部分代码将需要跟踪命令的所有更改。)
选项 2:创建 AddOrderLineCommand、DeleteOrderLineCommand、UpdateOrderLineCommand 和 SaveOrderCommand。 UI 上的每个操作都会创建一个请求,“保存”按钮将调用SaveOrderCommand。但是,它需要一些有状态的服务来保存所有未保存的更改。
CQRS 惯用方法是哪一种?
【问题讨论】:
-
您正在描述 CRUD 用例。 DDD 和 CQRS 没有任何关于如何做到这一点的秘诀。它们适用于业务用例,而不是用于保存、更新和删除。
标签: domain-driven-design cqrs command-query-separation