一CQRS的基本原理的,据我所知,是命令应行为为中心,并具有在业务或一个值的UL,和不以数据为中心,即,CRUD。而不是侧重于更新的客户,我们有像CustomerHasMoved命令。如果你有CRUD屏幕都有哪些,还有纠正某些数据。例如,我们需要改变这是一个拼写错误客户的名称。这并没有真正有商业价值很大。如果这仅仅是一个UpdateCustomer命令的伞下?

有帮助吗?

解决方案

事实上,可能有多种原因,更新客户的名字。正如你说,也可能是拼写错误或者......你可以结婚,改变你的名字你丈夫的。

如果你只有一个UpdateCustomer命令,你会失去原意,你就不能有不同的行为为他们每个人。如果名字misselled这可能是因为更新数据库,而如果您的客户结了婚,你可能需要通知销售DEPARTEMENT所以tthat他们可以提供折扣一样简单。

在你的实体是纯粹的CRUD的情况下,这是没有的意图,你可以修改属性相关联,那么它的确定有一个UpdateEntityCommand。然后,您可以慢慢过渡到基于东西多任务

其他提示

我只想赶紧把这个评论,因为它弹出。

要注意,有些对象实际上CRUD和多数民众赞成确定是很重要的。我可能不是很在乎,为什么一个名字在我的领域不断变化的,我船产品的人,只需要这些数据来打印邮寄标签。诀窍是在做行为的默认,然后恢复到一个CRUD接口,一旦你确定你真的不关心的原因,而不是反之。

格雷格

CustomerHasMoved是你已经更新了客户的位置之后被解雇的事件。此事件更新读数据库/缓存数据库。从GUI的命令应该是MoveCustomer或类似的东西。我想我会放在客户名称的更新像UpdateCustomer的命令。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top