本篇文章主要介绍了"设计模式——观察者模式",主要涉及到方面的内容,对于软件工程感兴趣的同学可以参考一下:
我个人感觉这个模式使用非常的广泛。这是一个可以帮助你的对象知悉现状,不会错过该对象感兴趣的事。对象甚至在运行时可决定是否要继续被通知。观察者模式也是JDK中...
publicclass WeatherData implements Subject {
private List observers;//用来存放观察者
privatefloat temperature;
privatefloat humidity;
privatefloat pressure;
public WeatherData() {
// TODO Auto-generated constructor stub observers = new ArrayList();
}
@Override
publicvoid registerObserver(Observer o) {
// TODO Auto-generated method stub observers.add(o);
}
@Override
publicvoid removeObserver(Observer o) {
// TODO Auto-generated method stubint i = observers.indexOf(o);
if (i >= 0) {
observers.remove(i);
}
}
@Override
publicvoid notifyObserver() {//在这里把状态告诉每一位观察者
// TODO Auto-generated method stubfor (int i = 0; i < observers.size(); i++) {
Observer observer = (Observer) observers.get(i);
observer.update(temperature, humidity, pressure);
}
}
publicvoid measurementsChanged() {
notifyObserver();
}
/**测试数据**/
publicvoid setMeasurements(float temperature, float humidity,
float pressure) {
this.temperature = temperature;
this.humidity = humidity;
this.pressure = pressure;
measurementsChanged();
}
}
下面是观察者的具体实现,观察者需要实现Observer和DisplayElement两个接口,一个用来接收新状态,一个用来显示状态信息。