首页 > 代码库 > 项目中观察者模式的应用

项目中观察者模式的应用

目前项目中最多用的模式就是观察者模式了。。。该模式是当有数据状态变化需要及时通知的时候使用的

项目中其中之一的应用场景:

    当网络状态发生变化时影视下载界面提示当前是使用免费的wifi还是机主自己的流量

1.首先定义被观察者的实体类

public class NetworkTypeNotifier extends Observable {
//发生变化时调用该方法通知
public void notifyAll(NetworkType networkType) {
this.setChanged();
this.notifyObservers(networkType);
}
}

2.可以在项目的Application中实例化该实体类

3.定义观察者

private Observer mTitleNetWorkObserver = new Observer() {
@Override
public void update(Observable observable, Object data) {
//数据变化时需要做的动作


}
};

4.当想观察的数据发生变化时调用notifyAll方法通知数据变化

 

public void setCurrentNetworkType(NetworkType currentNetworkType) {
if (this.currentNetworkType != currentNetworkType) {
//通知数据变化
this.mNtn.notifyAll(currentNetworkType);
}
this.currentNetworkType = currentNetworkType;
}