观察者模式的定义
观察者模式(Observer Pattern)是一种常用的设计模式,允许一个对象(称为“观察者”)订阅另一个对象(称为“主题”或“可观察对象”)的状态变化,并在状态改变时得到通知。这种模式在实现事件处理系统、数据更新通知等场景中非常有用。
大白话理解观察者模式
观察者模式,就像是微博上的明星和粉丝的关系。
假设一个明星就是一个“可观察的对象”,而粉丝们就是一群“观察者”。当这位明星发布了一个新微博(也就是状态改变),所有关注他的粉丝(观察者)都能立刻收到通知,看到这条新微博的内容。
在软件开发中,观察者模式也是这样工作的:
-
你有一个对象,这个对象的状态可能会改变,比如一个计时器每秒更新时间,或者一个游戏中的分数板。
-
然后有很多其他的对象,它们对这个状态感兴趣,比如一个显示当前时间的数字时钟,或者是显示分数的游戏界面。
-
这个状态可能会改变的对象会维护一个列表,里面记录了所有感兴趣的观察者。
-
一旦状态改变了,这个对象就会走遍这个列表,通知列表中的每个观察者,告诉它们:“嘿,状态改变了,更新一下自己吧”。
举个软件开发中的例子:
想象你在做一个天气预报的应用。这个应用的核心是一个“天气站”对象,它会不断地检查最新的天气信息。然后有多个不同的界面,比如一个显示温度的界面,一个显示湿度的界面,还有一个显示风速的界面。这些都是观