发布订阅模式及观察者
观察者模式
观察者模式的目的就是为了实现松耦合,面对接口编程
在观察者模式里面,有一个实例对象–被观察者(Subject),他维护一套观察者(observer)的结合,这些 Observer 实现相同的接口,subject 只需要知道,通知 Observer 需要调用哪个统一的方法
发布订阅模式
在发布订阅模式里,发布者并不会直接通知订阅者,发布者和订阅者彼此不相识,通过第三方来进行函数调用
发布者 只需要告诉 第三方 我要 发送 的信息是 XXX
订阅者 只需要告诉 第三方 我要 订阅 的消息是 XXX
当 第三方 接收到 发布者 发送的消息且是 XXX 时,就会报消息推送给订阅了 XXX 的 订阅者,当然也有可能是 订阅者 自己过来拿取
在发布订阅模式中,发布者和订阅者不是松耦合,而是完全解耦的
总结
从表面上看
观察者模式只有两个角色 观察者和被观察者
发布订阅模式中有三个角色 发布者、订阅者和第三方深层次
观察者模式 是松耦合关系
发布订阅模式 是完全不存在耦合使用层次
观察者模式 多用于单个应用内部
发布订阅模式 更多的是一种跨应用的模式
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
DisqusValine