ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件工程 >> 设计模式——观察者模式

设计模式——观察者模式(2/3)

来源:网络整理     时间:2015-12-17     关键词:

本篇文章主要介绍了"设计模式——观察者模式",主要涉及到方面的内容,对于软件工程感兴趣的同学可以参考一下:   我个人感觉这个模式使用非常的广泛。这是一个可以帮助你的对象知悉现状,不会错过该对象感兴趣的事。对象甚至在运行时可决定是否要继续被通知。观察者模式也是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两个接口,一个用来接收新状态,一个用来显示状态信息。

上一篇:没有了 下一篇双重OAuth 20架构

相关图片

相关文章