您的位置:首页 > 其它

设计模式之二:观察者模式(简单实现(气象站模拟流程))

2012-09-13 16:10 381 查看
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 当你试图勾勒观察者模式时,可以利用报纸订阅服务,以及出版者和订阅者比拟这一切。

设计原则:为了交互对象之间的松耦合设计为努力。

工程名称:SubjectAndObsever(eclipse) 下载目录:http://www.cnblogs.com/jrsmith/admin/Files.aspx , SubjectAndObsever.zip

View Code

package com.jyu.implement;

import com.jyu.interfaces.DisplayElement;
import com.jyu.interfaces.Obsever;
import com.jyu.interfaces.Subject;

public class CurrentConditionDisplay implements Obsever, DisplayElement {

private float temperature;
private float humidity;
private Subject weatherData;

/**构造器需要weatherData对象(也就是主题)作为注册之用*/
public CurrentConditionDisplay(Subject weatherData){
this.weatherData = weatherData;
weatherData.registerObsever(this);
}

@Override
public void update(float temp, float humidity, float pressure) {
this.temperature = temp;
this.humidity = humidity;
display();
}

@Override
public void display() {
System.out.println("Currnet conditions:"+temperature+"F degree and "+humidity+"%humidity");
}
}


package com.jyu.test;

import com.jyu.implement.CurrentConditionDisplay;
import com.jyu.implement.WeatherData;

public class WeatherStation {

/**
* @param args
*/
public static void main(String[] args) {
WeatherData weatherData = new WeatherData();

CurrentConditionDisplay currentConditionDisplay = new CurrentConditionDisplay(weatherData);

weatherData.setMeasurements(80, 65, 30.4f);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: