观察者设计模式简介
观察者可以用来做什么?
比如应用商店下载进度条的问题在列表中点击下载后,会显示进度状态:
当点击详情页面时,进度条会同步:
实现原理:
- 利用观察者设计模式
- 两个进度条分别为两个观察者,同时观察下载这个被观察者,当下载进度发生变化时,两个被观察者同时能够接收到变化的消息,下载进度得到了同步
如何实现?两种方法
- 实现系统接口
- 实现自定义接口
实现系统接口
步骤如下:
1. 被观察者实现Observable接口
public class DownManager extends Observable {
//有内容发生改变
@Override
public boolean hasChanged() {
return true;//true有内容发生改变,必须为true
}
上面实现Observable方法后,必须实现hasChanged(),并且必须返回true.
2. 观察者实现Observer接口
public class DetailView implements Observer {
//当被观察者数据发生变化时,会调用该方法
@Ov