设计模式之观察者模式(java内置)

来源:互联网 发布:linux网络编程工作 编辑:程序博客网 时间:2024/05/29 13:44

这里写图片描述
DisplayElement.java,WeatherStation.java同上
WeatherData.java

import java.util.Observable;public class WeatherData extends Observable {    private float temperature;    private float humidity;    private float pressure;    public float getTemperature() {        return temperature;    }    public float getHumidity() {        return humidity;    }    public float getPressure() {        return pressure;    }    public WeatherData() {    }    public void measurementsChanged(){        setChanged();        notifyObservers();    }    public void setMeasurements(float temperature, float humidity, float pressure){        this.temperature = temperature;        this.humidity = humidity;        this.pressure = pressure;        measurementsChanged();    }   }

CurrentConditionDisplay.java

import java.util.Observable;import java.util.Observer;public class CurrentConditionDisplay implements Observer, DisplayElement {-    private float temperature;    private float humidity;    Observable observable;    public CurrentConditionDisplay(Observable observable) {            this.observable = observable;            observable.addObserver(this);    }    @Override    public void display() {        System.out.println("Current Conditions:" + temperature                + "F degrees and " + humidity + "% humidity");    }    @Override    public void update(Observable obs, Object arg) {        if (obs instanceof WeatherData) {            WeatherData weatherData = (WeatherData) obs;            this.temperature = weatherData.getTemperature();            this.humidity = weatherData.getHumidity();            display();        }    }}
0 0
原创粉丝点击