2012-12-20 17:20 "@qiullin"的内容
roleAssigner.assignDomainEvents(matchcreator); ...

可以按照你的理解,关键是:一个对象还没创建之前是不能创建自己的,这是逻辑。所以构造一个专门用于创建Match的Matchcreator,这种黑客craker式的技术只能在Match外部去完成,只能在Service或DCI的场景中完成比较适合。

关于本帖的详细讨论 还可以见CQRS如何实现读写分离,适合初次接触者。

[该贴被banq于2012-12-22 11:12修改过]

呃,原来在模型里的东西放到事件里的,事件就充当实体或DTO的作用了,原来在service里的东西放到了模型里,只是这样不会有事件大爆炸吗,这里一个简单的例子就已经几个事件了。

另外这个例子体现出了cqrs了,我看到了只是把读的那一部分放到一个专门的servlet而已,DDD这些东西感觉名词越来越多了呀,是不是有点搞复杂了呀。

另外处理事件好像是异步的吧,一直不知道如果是异步的话,那需要创建成功的时候返回提示时怎么保证他创建完了呢?而http是无状态的,这一步是怎么做的

2012-12-28 23:10 "@chanball"的内容
另外处理事件好像是异步的吧,一直不知道如果是异步的话,那需要创建成功的时候返回提示时怎么保证他创建完了呢?而http是无状态的,这一步是怎么做的 ...


这一点我也一直很疑惑,也找不到理想的解决方法。望达人们给出方案……


[该贴被tangxuehua于2013-02-16 23:21修改过]

mark

CQRS 是个很有魔力的架构。如果业务异常,我们怎么回放这些保存的事件 ,实际该怎么操作以快速定位问题(重新执行这些事件吗)。banq 可否指点下具体做法,不胜感激,呵呵

老师你好,有一点我不是很懂,对于ioc框架,不应该是有ioc来管理创建类吗,为什么在你的Match例子中你还有new一个类呢?
this.teams[0] = new Team(matchCreatedEvent.getMatchTeamName1());
this.teams[1] = new Team(matchCreatedEvent.getMatchTeamName2());

Match matchcreator = new Match();
roleAssigner.assignDomainEvents(matchcreator);