观察者模式 vs 发布订阅模式
Posted wgchen~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了观察者模式 vs 发布订阅模式相关的知识,希望对你有一定的参考价值。
场景
有一回面试,面试官问:
观察者模式,和发布订阅模式,有什么区别?
我脑海中立刻闪现了《设计模式》里讲的:
Publishers + Subscribers = Observer Pattern
“它们是一样的。”,我故作镇定,嘴角露出一丝微笑,仿佛下一秒钟面试官就会给我发offer。
面试官也笑了,“不,它们不一样”。
然后我就:
So, 为什么我错了?观察者模式(Observer pattern),和发布订阅模式(Publish–subscribe pattern),到底有什么不同?
观察者模式
所谓观察者模式,其实就是为了实现松耦合(loosely coupled)。
用《设计模式》里的气象站为例子,每当气象测量数据有更新,changed()方法就会被调用,于是我们可以在changed()方法里面,更新气象仪器上的数据,比如温度、气压等等。
但是这样写有个问题,就是如果以后我们想在changed()方法被调用时,更新更多的信息ÿ
以上是关于观察者模式 vs 发布订阅模式的主要内容,如果未能解决你的问题,请参考以下文章