总线有很多种:CommandBus、EventBus、DataBus、ControlBus、AddressBus等
如果整个系统是棵树,那么命令和事件唯有捕获和冒泡,子节点的事件唯有向上传播给自己的父节点,同样父节点捕获的命令要么自己处理要么向下传播给自己的子节点的直到那个可以处理这个命令的节点,命令被任何节点处理后即变为了事件,命令是捕获输入的流程,事件是冒泡输出的流程。
这种严格的沿着树的捕获和冒泡有时候不够高效,所以树上的每一个节点上都可以接入到那条红色的总线上去。从而把树展开为线,解决捕获和冒泡不高效的问题
然而有了事件总线后,就可以把那个经过了那么多节点的数据传播流程简化为只有一个操作的hash定位了
总线可能就是虫洞吧
【渡劫】首席.net工程师 2014/12/8 14:07:38
图上红色的线表示总线,这条线可以被想象成一个点,收缩为一个点,对于那棵树上的任何对象来说总线都只是一个点
14:09:43
【渡劫】首席.net工程师 2014/12/8 14:09:43
那棵树上的事物都只能沿着那棵树运动,永远脱离不了那棵树,但是树上的每个节点上我们都给它接入一条总线,这条总线在那个节点看来只是一个点,只是一个总线对象的引用。
这个点就是虫洞。