weather station observer

public interface Subject {
public void registerObserver(Observer o);
public void removeObserver(Observer o);
public void notifyObservers();
}

public interface Observer {
public void update(float temp, float humidity, float pressure);
}

public interface DisplayElement {
public void display();
}
public class CurrentConditionsDisplay implements Observer, DisplayElement {
  private float temperature;
  private float humidity;
  private Subject weatherData;
  public CurrentConditionsDisplay(Subject weatherData) {
  this.weatherData = weatherData;
  weatherData.registerObserver(this);
  }
  public void update(float temperature, float humidity, float pressure) {
  this.temperature = temperature;
  this.humidity = humidity;
  display();
  }
  public void display() {
  System.out.println(“Current conditions: “ + temperature
  + “F degrees and “ + humidity + “% humidity”);
  }}
public class WeatherData implements Subject {
  private ArrayList observers;
  private float temperature;
  private float humidity;
  private float pressure;
  public WeatherData() {
  observers = new ArrayList();
}
  public void registerObserver(Observer o) {
  observers.add(o);
}
  public void removeObserver(Observer o) {
  int i = observers.indexOf(o);
  if (i >= 0) {
  observers.remove(i);
}
}
  public void notifyObservers() {
  for (int i = 0; i < observers.size(); i++) {
  Observer observer = (Observer)observers.get(i);
  observer.update(temperature, humidity, pressure);
}
}
  public void measurementsChanged() {
  notifyObservers();
}
public void setMeasurements(float temperature, float humidity, float pressure) {
  this.temperature = temperature;
  this.humidity = humidity;
  this.pressure = pressure;
  measurementsChanged();
}
// other WeatherData methods here
}
时间: 2025-01-14 08:28:16

weather station observer的相关文章

设计模式 - 观察者模式(Observer Pattern) 详解

观察者模式(Observer Pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26583157 版权所有, 禁止转载, 如有转载, 请站内联系. 观察者模式(Observer Pattern): 定义了对象之间的一对多的依赖, 这样一来, 当一个对象改变状态时, 它的所有依赖者都会收到通知并自动更新. 使用方法: 1. 首先新建主题(subject)接口, 负责注册(register)\删除(remove

设计模式 - 观察者模式(Observer Pattern) 详细说明

观察者模式(Observer Pattern) 详细说明 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26583157 版权全部, 禁止转载, 如有转载, 请站内联系. 观察者模式(Observer Pattern): 定义了对象之间的一对多的依赖, 这样一来, 当一个对象改变状态时, 它的全部依赖者都会收到通知并自己主动更新. 用法: 1. 首先新建主题(subject)接口, 负责注冊(register)\删除(remo

Method for finding shortest path to destination in traffic network using Dijkstra algorithm or Floyd-warshall algorithm

A method is presented for finding a shortest path from a starting place to a destination place in a traffic network including one or more turn restrictions, one or more U-turns and one or more P-turns using a Dijkstra algorithm. The method as sets a

udacity android 实践笔记: lesson 4 part a

udacity android 实践笔记: lesson 4 part a 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八(短信最佳) 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/mast

Apparatus, system, and method for automatically minimizing real-time task latency and maximizing non-real time task throughput

An apparatus, system, and method are provided for automatically minimizing Real-Time (RT) task latency and maximizing Non-Real Time (NRT) task throughput. The apparatus may include a task manager, a determination module, and optionally a tracking mod

如何在Raspberry Pi 3B中安装Windows 10 IoT Core

Windows 10 IoT Core简介 Windows 10 IoT是微软专门为物联网生态打造的操作系统,Windows 10 IoT Core则是Windows 10 IoT 操作系统的核心版本,功能相对精简.使用Windows 10 IoT可以打造属于自己的物联网生态系统. Windows 10 IoT的版本介绍 Windows 10 IoT 企业版 Windows 10 IoT 企业版将 Windows 10 企业版功能广泛应用于零售.制造.医疗.金融和其他行业的设备上.Windows

控制台调用天气API例子

第一步,新建控制台应用程序,然后新建类:WeatherReport: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class WeatherReport { public string date { get; set; } public long

STAT 380 Midterm

STAT 380 MidtermSpring 2019YOUR NAMEDue: 03/01/2019 11:59PMIntegrity statment. The work submitted for this assessment is entirely my own. I have neither given orrecieved unauthorized assistance during the assessment, and/or I will speak with Dr. Beck

esp8266气象站2

承接上一篇,使用的数据源仍然是心知天气提供的数据接口,可以每分钟查询20次,也就是做多3s请求一次数据 替换原有的nodemcu,使用了ttgo-display,芯片esp32,自带一个1.14‘的ips显示屏 2,实现查询最近三天的天气信息,串口终端以及tft显示,界面还有问题,下次换屏. 通过轮询的方式查询多地的天气, 3,存在的问题,tft_espi显示函数不太熟悉,缺少全面的函数调用说明/应该可以找到吧,依然是一个测试版本. 4,改进,下一版本准备中文字库,或许添加图标 /* esp32