Closed ScarboroughCoral closed 4 months ago
您好!您的邮件已收到!我查阅后,尽快回复您!
@ScarboroughCoral ListModule
不暴露 Event 是已知的问题。最初是添加了 ItemAddedEvent, ItemDeletedEvent, ListChangedEvent 等事件,但后面发现,这些事件无法可靠地触发,因为 SetListCommand 可以将 List 整体替换,其中有些可能是 add 的新元素,有些可能是 delete 了,而有些可能 re-order 了。
这将导致业务逻辑依赖 ItemAddEvent 时,有些不是通过 AddItemCommand 添加的 added items 可能不会触发。
正因如此,remesh 才意欲引入 entity-component-system
和 entity-relationship model
等模型,掌控底层 state 的表征方式,以便得到更可靠的 state related events。
目前的折衷做法是,ListModule 自身不暴露 event,由上层 domain 自己管理自己的 event 并保证它们的可靠性。后续 remesh 升级后或许会克服这类问题。
好的 确实是这样 了解了
在看 TodoList example 时发现
event
产生依赖于TodoListModule
的command
,但是command
实现细节是在remesh
内部的,需要使用者确定command
确实对list
产生了修改,如果ListModule
对外暴露ListChangedEvent、ListItemAddedEvent
等事件,外部就确定事件已发生可以直接使用。不知道有没有必要呢?如果有必要的话我想尝试提一下pr~