加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- AI开发硬件、专属主机、建站、CDN、云容器引擎!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

domain-driven-design C 触发CQRS中其他域更改的域事件

发布时间:2024-06-09 18:04:50 所属栏目:资源 来源:DaWei
导读: 在我看到的CQRS的所有示例中,域事件触发了对读取模型的更新,但没有其他任何内容.但是,当您希望域事件在域中引起其他更改时呢?

例如,假设您有以下要求:

>单击“关闭帐户&rdqu
在我看到的CQRS的所有示例中,域事件触发了对读取模型的更新,但没有其他任何内容.但是,当您希望域事件在域中引起其他更改时呢?
 
例如,假设您有以下要求:
 
>单击“关闭帐户”按钮时,关闭帐户
 
>当帐户被还清时,关闭帐户
 
>帐户关闭时,将帐户所有者标记为“特殊”
 
处理这个问题的最佳方法是什么?
 
>使Account.Close()创建一个AccountClosed事件,并将所有者标记为“特殊”
 
>创建一个AccountClosed处理程序,将所有者标记为“特殊”
 
>创建一个提交MarkOwnerAsSpecial命令的AccountClosed处理程序
 
>使关闭帐户的命令处理程序也将帐户所有者标记为“特殊”
 
解决方法
 
出于这个目的,有一个名为Sagas的特定概念.从Rinat Abdullin的这篇文章开始,然后从那里开始.
 
http://abdullin.squarespace.com/journal/2010/9/26/theory-of-cqrs-command-handlers-sagas-ars-and-event-subscrip.html
 
你的选择3接近这个概念. saga基本上是一个发出新命令的事件处理程序.您不希望事件处理其源自聚合之外的聚合,而是根据您的业务规则处理事件并提交新命令.这就是传奇所要做的.
 
 
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章