在Java中使用观察者模式时,Observable的方法notifyObservers(Object arg)的问题
在Java中使用观察者模式时,Observable的方法notifyObservers(Object arg)
中的arg参数有什么作用?
JDK文档中好象什么也没说
------解决方案--------------------Observable中有两个重载的方法,一个是不带参数的notifyObservers(),一个是带参数的notifyObservers(Object arg)
先说那个带参数的notifyObservers(Object arg):
这个参数Object arg 其实就是 Observer接口中的update(Observable o, Object arg)方法中的第二个参数
其实就是一个数据对象,也就是通知观察者,改变的数据对象是什么
这就是一种PUSH的方法,由主题主动的PUSH需要改变的数据对象给观察者
例子:
Java code
public class WeatherData extends Observable {
private float temperature;
private float humidity;
private float pressure;
……..
public void measurementsChanged() {
setChanged();
notifyObservers(float temperature);
}}