观察者模式和事件总线都是发布订阅模型。
两者主要差别在于他们的拓扑结构。
观察者模式,观察的关系是一对一的。 拓扑结构 是网形的
事件总线引入中间对象, 让被观察者只依赖事件总线,观察者也只依赖事件总线,他的拓扑结构为星形
事件总线解决观察者模式的一个问题:当观察对象增多时,对象间的观察关系指数增加,而事件总线的观察关系是线性增加了,极大降低复杂度。
第二点, 如果被观察者与观察者都是动态创建的,那么维护关系的生命周期也是个大问题。
可以清晰知道,观察者模式有时粒度太细, 事件总线有时粒度太大,所以,我们还可以引入局部范围内的事件总线,灵活运用。
编程过程中的种种设计模式,本质是业务逻辑中静态部分与动态部分的管理。
网友评论