1.定义一个可观察者WeatherData,继承了java.util.Observable类
package pattern.javaObserver;
import java.util.Observable;
public class WeatherData extends Observable{
private float temperature;
private float humidity;
private float pressure;
public void measuarementsChanged(){
setChanged();
notifyObservers();
}
public void setWeatherData(float temperature,float humidity,float pressure){
this.temperature = temperature;
this.humidity = humidity;
this.pressure = pressure;
measuarementsChanged();
}
public float getTemperature() {
return temperature;
}
public float getHumidity() {
return humidity;
}
public float getPressure() {
return pressure;
}
}
2,.自定义一个定义显示接口DisplayElement。
package pattern.observer;
public interface DisplayElement {
public void display();
}
3.定义一个观察者CurrentConditionDisplay,实现了java.util.Observer接口和自定义的显示接口DisplayElement。
package pattern.javaObserver;
import java.util.Observable;
import java.util.Observer;
import pattern.observer.DisplayElment;
public class CurrentConditionDisplay implements Observer , DisplayElement{
Observable observable;
private float temperature;
private float humidify;
public CurrentConditionDisplay(Observable o){
this.observable = o;
o.addObserver(this);
}
@Override
public void display() {
System.out.println("this is Current conditions:" + temperature +"F degrees and "+ humidify +"% humidity");
}
@Override
public void update(Observable o, Object arg) {
if(o instanceof WeatherData){
WeatherData weatherData = (WeatherData) o;
this.temperature = weatherData.getTemperature();
this.humidify = weatherData.getHumidity();
display();
}
}
}
4.测试程序
package pattern.javaObserver;
public class WeatherStation {
/**
* @param args
*/
public static void main(String[] args) {
WeatherData weatherData = new WeatherData();
CurrentConditionDisplay c = new CurrentConditionDisplay(weatherData);
weatherData.setWeatherData(50, 53, 50.3f);
weatherData.setWeatherData(30, 33, 30.3f);
weatherData.setWeatherData(40, 43, 40.3f);
}
}
5.结果:
this is Current conditions:50.0F degrees and 53.0% humidity
this is Current conditions:30.0F degrees and 33.0% humidity
this is Current conditions:40.0F degrees and 43.0% humidity
分享到:
相关推荐
### Java内置观察者模式的实现 1. **主题类实现**:首先,创建一个类实现`Observable`接口,这样该类就成为了可观察的对象。例如: ```java import java.util.Observable; public class MySubject extends ...
Java内置的观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象事件发生时通知多个“观察”该对象的其他对象。这种模式在Java中通过`java.util.Observable`和`java.util....
在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了对观察者模式的内置支持。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 ### `...
现在让我们看看如何使用Java内置的观察者模式: 1. 创建被观察者: 首先,我们需要创建一个扩展`Observable`的类。这个类将包含状态变化的逻辑,并在状态改变时调用`setChanged()`和`notifyObservers()`方法。 ``...
Java编程之内置观察者模式实例详解主要介绍了Java编程之内置观察者模式,结合实例形式较为详细的分析了java内置观察者模式的原理、实现方法及相关注意事项。 一、观察者模式的概念 观察者模式是一种行为型设计模式...
在Java中,观察者模式的实现通常基于Java的内置接口`java.util.Observer`和`java.util.Observable`。下面将详细解释观察者模式的概念、结构以及如何在Java中应用这个模式。 **观察者模式的核心概念:** 1. **主题...
在Java中,`java.util.Observable` 和 `java.util.Observer` 是内置支持观察者模式的类。 标题中的“java观察者模式Demo”指的是使用Java语言来演示观察者模式的应用。通常,这个Demo会包含一个可观察的对象...
在Java中,观察者模式可以通过Java的内置API `java.util.Observable` 和 `java.util.Observer` 类来实现。`Observable` 类代表被观察的对象,而 `Observer` 接口则表示观察者。以下是对这两个关键类的详细解释: 1....
在Java中,我们可以利用Java提供的内置监听器机制来实现观察者模式,例如`ApplicationListener`和`ApplicationEvent`,这两个类主要用于Swing或JavaFX应用程序中的事件处理。 首先,我们来看`ApplicationListener`...
Java内置的Observable类和Observer接口提供了基本的观察者模式功能,你可以通过继承Observable类和实现Observer接口来使用
在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的设计模式:Model-View-Controller(MVC)模式和Observer(观察者)模式。这两种模式在JavaWeb开发中扮演着至关重要的角色。 ...
在Java中,观察者模式可以通过Java的内置接口`java.util.Observer`和`java.util.Observable`来实现。`Observer`接口代表观察者,而`Observable`类代表被观察的对象,也称为主题(Subject)。下面将详细介绍这两个...
在Java中,`java.util.Observable`和`java.util.Observer`接口提供了内置的支持来实现观察者模式。`Observable`类代表被观察的对象,而`Observer`接口则表示观察者。让我们详细解析这个实例: 1. **定义主题...
在Java中,观察者模式通常通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。 首先,...
在Java中,观察者模式是通过Java的内置接口`java.util.Observer`和`java.util.Observable`来实现的。 在"java 观察者模式经典案例"中,我们以报社和读者为例来讲解这一模式。假设报社是被观察者(Observable),...
在Java中,`java.util.Observable` 和 `java.util.Observer` 类是内置的支持观察者模式的类。`Observable` 类代表被观察的对象,而`Observer`接口则表示观察者。下面我们将详细探讨这两个类以及如何使用它们来实现...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,标准的观察者模式实现是...
4. **Java实现**:在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的标准实现。`Observable`类代表主题,`Observer`接口代表观察者。通过`addObserver()`添加观察者,`...
在Java编程领域,设计模式是一种被广泛采用的最佳实践,它为解决常见的软件设计问题提供...在Java中,`java.util.Observable`和`java.util.Observer`是内置的观察者模式实现,可以方便地用于快速构建观察者模式的系统。
在Java中,观察者模式通常通过Java内置的`java.util.Observable`类和`java.util.Observer`接口来实现。`Observable`类代表被观察的对象,它可以有多个观察者,而`Observer`接口则定义了观察者的通用行为。下面我们将...