目录
场景
- 场景
-
- 观察者模式
- 发布订阅模式
- 总结
有一回面试,面试官问:
观察者模式,和发布订阅模式,有什么区别?
我脑海中立刻闪现了《设计模式》里讲的:
Publishers + Subscribers = Observer Pattern
“它们是一样的。”,我故作镇定,嘴角露出一丝微笑,仿佛下一秒钟面试官就会给我发offer。
面试官也笑了,“不,它们不一样”。
然后我就:
So, 为什么我错了?观察者模式(Observer pattern),和发布订阅模式(Publish–subscribe pattern),到底有什么不同?
观察者模式所谓观察者模式,其实就是为了实现松耦合(loosely coupled)。
用《设计模式》里的气象站为例子,每当气象测量数据有更新,changed()方法就会被调用,于是我们可以在changed()方法里面,更新气象仪器上的数据,比如温度、气压等等。
但是这样写有个问题,就是如果以后我们想在changed()方法被调用时,更新更多的信