观察者模式
定义:
定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新
解决的问题:
一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。
理解:
“一”就相当于报社,“多”就相当于订这家报社的人,如果有新闻,报社就会把报纸派发给所有订报纸的人。【报社内部有一个订报纸的人的列表】
可观察者不需要知道观察者的具体类是谁,做了些什么或其他任何的细节。
主题不在乎别的,它只会发送通知给所有实现了观察者接口的对象。
关键代码:
在可观察者对象里有一个列表,储存着所有的观察者。
举例子:
- 定义可观察者的接口。
- 定义观察者的接口(接口中有update方法)
- 可观察者类实现可观察者接口,类中有notify方法,和addObserver等方法,因为它知道,“订了自己家报纸的观察者”都会实现update方法,所以“有新闻的时候”,notify方法里面,遍历观察者列表,调用他们的update方法就实现了消息的更新。