观察者模式是什么:从订阅报纸到代码通知

观察者模式是什么:从订阅报纸到代码通知

推荐一个学习网站,http://easelearningai.com  输入学习主题,会根据你的知识背景,帮你把学习内容讲得通俗易懂。
 

一句话定调

简单说,观察者模式就是**“你订阅了,我就通知你”**——就像你订了一份报纸,报社每天印好新报纸,就会送到你家门口,你不用天天跑去报社问“今天有报纸吗?”


第一部分:从生活场景说起

场景一:你订了一份报纸

想象一下,你住在一个小区里,每天最期待的就是早上的报纸。以前没有互联网的时候,你是怎么拿到报纸的?

  • 你不会每天跑到报社门口去问:“今天报纸印好了吗?”
  • 你也不会在小区门口傻等,生怕错过送报员。
  • 你只需要做一件事:订阅。填一张表,留下地址,然后该干嘛干嘛。

报社那边呢?他们每天凌晨印好报纸,然后根据订阅名单,挨家挨户送。谁订阅了,谁就能收到;没订阅的人,报社根本不会管。

这就是观察者模式最核心的思想:把“主动询问”变成“被动接收”

场景二:你的手机推送通知

再想想你手机上的新闻App。你下载了它,它不会天天给你推送所有新闻——那你会烦死的。但你关注了几个频道,比如“科技”和“体育”。然后,每当这些频道有新内容,App就会弹出一条通知:“科技频道更新啦!”

  • 你(观察者)订阅了某个频道(被观察对象)。
  • 频道一有变化(新文章),就自动通知你。
  • 你不需要每隔5分钟打开App刷新。

看,同样的逻辑。


第二部分:为什么需要这个“发明”?

问题:没有观察者模式的世界

让我们回到没有观察者模式的“原始社会”。假设你是一个软件开发者,要做一个天气App。你的App需要从气象局获取温度数据,然后展示给用户。

<