package JDK;
import java.util.Observable;
import java.util.Observer;
public class JDKObserver {
public static void main(String[] args) {
WeatherData weatherData = new WeatherData();
CurrentConditionsDisplay currentConditionsDisplay = new CurrentConditionsDisplay(weatherData);
weatherData.setMeasurements(80, 90);
}
}
class WeatherData extends Observable{
private float temperature;
private float humidity;
public WeatherData(){
}
public float gettemperature(){
return temperature;
}
public float gethumidity() {
return humidity;
}
public void setMeasurements( float t, float h){
this.temperature = t;
this.humidity = h;
measurementsChanged();
}
public void measurementsChanged(){
setChanged();
notifyObservers();
}
}
interface DisplayElement{
void display();
}
class CurrentConditionsDisplay implements Observer,DisplayElement{
private Observable observable;
private float temperature;
private float humidity;
public CurrentConditionsDisplay(Observable observable){
this.observable= observable;
observable.addObserver( this);
}
public void update(Observable o, Object arg){
if (o instanceof WeatherData) {
WeatherData weatherData = (WeatherData) o;
temperature = weatherData.gettemperature();
humidity = weatherData.gethumidity();
display();
}
}
public void display(){
System.out.println( "Current conditions: "
+ temperature + "F degrees and "
+ humidity + "% humidity");
}
}
import java.util.Observable;
import java.util.Observer;
public class JDKObserver {
public static void main(String[] args) {
WeatherData weatherData = new WeatherData();
CurrentConditionsDisplay currentConditionsDisplay = new CurrentConditionsDisplay(weatherData);
weatherData.setMeasurements(80, 90);
}
}
class WeatherData extends Observable{
private float temperature;
private float humidity;
public WeatherData(){
}
public float gettemperature(){
return temperature;
}
public float gethumidity() {
return humidity;
}
public void setMeasurements( float t, float h){
this.temperature = t;
this.humidity = h;
measurementsChanged();
}
public void measurementsChanged(){
setChanged();
notifyObservers();
}
}
interface DisplayElement{
void display();
}
class CurrentConditionsDisplay implements Observer,DisplayElement{
private Observable observable;
private float temperature;
private float humidity;
public CurrentConditionsDisplay(Observable observable){
this.observable= observable;
observable.addObserver( this);
}
public void update(Observable o, Object arg){
if (o instanceof WeatherData) {
WeatherData weatherData = (WeatherData) o;
temperature = weatherData.gettemperature();
humidity = weatherData.gethumidity();
display();
}
}
public void display(){
System.out.println( "Current conditions: "
+ temperature + "F degrees and "
+ humidity + "% humidity");
}
}
转载于:https://blog.51cto.com/sophi/66359