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

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();
        }
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 01:07:31

设计模式之观察者模式(java内置)的相关文章

设计模式 - 观察者模式(Observer Pattern) Java内置 使用方法

观察者模式(Observer Pattern) Java内置 使用方法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26601659 观察者模式(observer pattern)详解, 参见: http://blog.csdn.net/caroline_wendy/article/details/26583157 Java内置的观察者模式, 是通过继承父类, 实现观察者模式的几个主要函数: Observerable(可被观

不使用java内置函数,将String字符串转换为int类型

package com.test; public class AtoiTest { public static void main(String[] args) throws Exception { String s = "-011134"; System.out.println("转换前的字符串:" + s); System.out.println("atoi1转换后的字符串:" + atoi1(s)); System.out.println(

大话设计模式_观察者模式(Java代码)

观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使他们自己能够自动更新自己.简单描述:1个Subject类(可以是抽象类可以是接口),可以有多个具体Subject类(继承抽象Subject),此具体Subject持有多个观察者的引用,在此具体Subject状态发生变化的时候调用这些观察者的相应方法.另外,这些持有的引用是抽象的,不是具体的,而这些引用所指向的对象时具体的观察者(即需要作出更新的具体观察者,这些具体

Java 性能分析工具 , 第 2 部分:Java 内置监控工具

引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工具,其中包括: jcmd:打印一个 Java 进程的类,线程以及虚拟机信息.适合用在脚本中.使用 jcmd - h 来查看使用方法. jconsole:提供 JVM 活动的图形化展示,包括线程使用,类使用以及垃圾回收(GC)信息. jhat:帮助分析内存堆存储. jmap:提供 JVM 内存使用信息

JAVA内置注解 基本注解

温故而知新,可以为师矣! 每天复习,或者学习一点小东西,也能水滴石穿! 今天复习5个JAVA内置基本注解(贴代码胜过千言万语): package com.lf.test; import java.util.ArrayList; import java.util.List; public class test1 extends Object { // [email protected] (jdk1.5更新) // Override 表示:重写 @Override public String toS

Observer 模式及JAVA内置的observer示例

关于观察者模式 假设今天您设计一个图形分析算表程序,当中有一个资料物件,您可以用表格图形物件.柱状图形物件.圆饼图形物件等方式来 呈现物件,无论您是用哪种图形物件,重点是若资料物件的内容作了更改,则图形物件的内容也必须跟着修改,或许您的程式中有两个以上的图形物件来呈现资料,您在图形物件上更动资料,则另一个图形物 件也必须作出相对应的变化. 主题 资料物件 观察者 柱状图形 表格图形 圆饼图形 又假设您今天设计一个网络游戏,您在服务器上维护一个连线客户端共享的资料物件,当其中一个客户端作了操作,将

JAVA内置的观察者模式样本

DisplayElement.java public interface DisplayElement { public void display(); } CurrentConditionsDisplay.java import java.util.Observer; import java.util.Observable; public class CurrentConditionsDisplay implements Observer, DisplayElement { Observabl

设计模式01观察者模式(java)

先发代码,有空来写内容. observer1 1 import java.util.Observer; 2 import java.util.Observable; 3 4 //学生类(Student)继承Observable后变得可以被观察 5 class Student extends Observable{ 6 //属性 7 private String name; 8 private boolean isSleep = false; 9 private boolean isLate =

JAVA基础整理-22. Java内置包装类

Java Object类详解:Object类的常用方法(equals()和getClass()) Object 是 Java 类库中的一个特殊类,也是所有类的父类.当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类. 在 Object 类中定义的方法,在其他类中都可以使用 equals() 方法 equals() 方法的作用与运算符类似,用于值与值的比较和值与对象的比较,而 equals() 方法用于对象与对象之间的比较 getClass() 方法 getClass()