维基百科:https://zh.wikipedia.org/wiki/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F
参考博客:http://blog.csdn.net/feiduclear_up/article/details/42167487
观察者模式
“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都将得到通知,并自动更新”,可以理解成多个观察者向一个被观察者订阅消息,当被观察者发生改变时通知相应的观察者去作自己的事情。
Android 中的观察者实现java.util.Observer接口,被观察者继承java.util.Observable类。
使用步骤
- 观察者实现Observer接口,重写update()方法;
- 被观察者继承Observable类;
- 观察者向被观察者订阅事件,调用addObserver()方法;
- 被观察者数据改变,调用setChanged()方法和notifyObservers()方法,通知观察者,观察者在update()方法里做出相应操作;
- 观察者向被观察者取消订阅事件。
应用场景实例
计步器功能,在Service里中有动态改变的step步数变量,而在Activity(或Fragment)中需要动态监听步数的变化更新UI,这时选择使用观察者模式。Activity(或Fragment)为观察者,Service中的step变量为被观察者。