前传
对象间相互调用,易出现耦合性太强的问题。这不利于变化。
这时,一个幽灵出现了,这就是观察者模式。它的生命的意义就是:打破对象间强耦合。
这就是小品中的:有事你说话。变成了,有事我说话。
实现:
实现方式很简单: 你注册,有事我通知。
观察者模式 很简单的。一个侦察员 + (伤员,士兵,百姓)
侦察员发现 鬼子来了 ,他通知 (伤员,士兵,百姓)
百姓的反映:我跑呀。。。
士兵的反应:我得掩护他们
伤员的反应:我自杀吧
这里存在一个问题:我该通知谁? 侦察员想,你不到我这里交点好处费(登记),我是不会告诉你的。
侦察员突然想起来,张三你去年打我一顿了,即使你交了好处费(登记),鬼子来,我也不告诉你(除名)。
qt 的信号和槽就是典型的观察者模式。
所以,观察者 类似 发报员+一群收报者。
observer 将对象的状态变化通知其他对象
备注:
回调函数,玩的是函数指针。