在显示多个订单明细行的屏幕中,用户可以添加、更新或删除行或列,然后单击“保存”按钮将所有订单更改保存在一个事务中。
选项 1:创建一个命令(将由Clicking
按钮的事件创建),说UpdateOrderCommand
,它具有用于所有更改的复杂内部数据结构。该命令会将更改应用到数据库表。(因此 UI 部分代码将需要跟踪命令的所有更改。)
选项 2:创建AddOrderLineCommand
、DeleteOrderLineCommand
、UpdateOrderLineCommand
和SaveOrderCommand
。UI 上的每个操作都会创建一个请求,并且“保存”按钮将调用SaveOrderCommand
. 但是,它需要一些有状态的服务来保存所有未保存的更改。
哪一种是 CQRS 惯用的方法?