关于Aggre-Repository-eventBus的关系


Aggre产生事件,然后由Repository发送给eventBus,再由eventHandle进行处理。

那么,Repository什么时候把事件 publish 到 eventBus呢?

是当 Aggre.store 时? 还是 ... 请BANQ和各位大神帮忙赐教

2012-07-25 10:01 "@brighthas"的内容
Repository什么时候把事件 publish 到 eventBus呢? ...

需要返回吗?如果担心出错,可采取存储的事件回滚再操作。


2012-07-26 09:03 "@banq"的内容
需要返回吗?如果担心出错,可采取存储的事件回滚再操作。 ...

当 commandHandle 调用时候会触发 domain aggre function. create event, 这时候 是马上publish到 event bus 吗?

2012-07-26 09:21 "@brighthas"的内容
这时候 是马上publish到 event bus 吗? ...

当然,速度越快越好,不过是异步的,不影响领域对象自身逻辑正常运转。

2012-07-26 09:23 "@banq"的内容
当然,速度越快越好,不过是异步的,不影响领域对象自身逻辑正常运转。 ...

关于 领域对象不暴露自己状态属性,我有些不习惯,就好比如下代码:

// changeName事件产生调用来更改属性。
function onChangeName(event){
this.name = event.data.name;
}

我想知道这样做的好处和是否必须这样做?

[该贴被brighthas于2012-07-26 13:21修改过]

2012-07-26 09:30 "@brighthas"的内容
领域对象不暴露自己状态属性 ...

因为状态是被动作操作的,而动作可能是系列动作,这些系列动作需要保证原子性,这样才能保证状态数据的完整性和一致性。

状态不被暴露,就是不允许外界直接操作状态,只能通过领域对象提供的特定方法操作,而这些方法内都有保证状态一致的操作顺序。