Skip to content
Snippets Groups Projects
Commit 7d492079 authored by Peter Hertkorn's avatar Peter Hertkorn
Browse files

Add observer interface

parent 3a619e54
No related branches found
No related tags found
No related merge requests found
package wetterstation; package wetterstation;
public class AktuelleBedingungenAnzeige { public class AktuelleBedingungenAnzeige implements Beobachter {
private float temperatur; private float temperatur;
private float feuchtigkeit; private float feuchtigkeit;
......
package wetterstation;
public interface Beobachter {
public void aktualisieren(float temp, float feucht, float druck);
}
package wetterstation; package wetterstation;
public class StatistikAnzeige { public class StatistikAnzeige implements Beobachter {
private float maxTemp = 0.0f; private float maxTemp = 0.0f;
private float minTemp = 200; private float minTemp = 200;
private float tempSum= 0.0f; private float tempSum= 0.0f;
private int anzMesswerte; private int anzMesswerte;
public void neueWerte(float temp, float feucht, float druck) { public void aktualisieren(float temp, float feucht, float druck) {
tempSum += temp; tempSum += temp;
anzMesswerte++; anzMesswerte++;
......
package wetterstation; package wetterstation;
public class VorhersageAnzeige { public class VorhersageAnzeige implements Beobachter {
private float aktuellerLuftdruck = 29.92f; private float aktuellerLuftdruck = 29.92f;
private float letzterLuftdruck; private float letzterLuftdruck;
public void aktuelleWerte(float temp, float feucht, float druck) { public void aktualisieren(float temp, float feucht, float druck) {
letzterLuftdruck = aktuellerLuftdruck; letzterLuftdruck = aktuellerLuftdruck;
aktuellerLuftdruck = druck; aktuellerLuftdruck = druck;
anzeigen(); anzeigen();
......
package wetterstation; package wetterstation;
import java.util.ArrayList;
import java.util.Arrays;
public class WetterDaten { public class WetterDaten {
private float temperatur; private float temperatur;
private float feuchtigkeit; private float feuchtigkeit;
private float luftdruck; private float luftdruck;
AktuelleBedingungenAnzeige anzeige = new AktuelleBedingungenAnzeige(); ArrayList<Beobachter> beobachter = new ArrayList<Beobachter>(
StatistikAnzeige statistik = new StatistikAnzeige(); Arrays.<Beobachter>asList(new AktuelleBedingungenAnzeige(),
VorhersageAnzeige vorhersage = new VorhersageAnzeige(); new StatistikAnzeige(),
new VorhersageAnzeige()));
public void benachrichtigeBeobachter() {
for (int i = 0; i < beobachter.size(); i++) {
Beobachter observer = (Beobachter)beobachter.get(i);
observer.aktualisieren(temperatur, feuchtigkeit, luftdruck);
}
}
public void messwerteGeaendert() { public void messwerteGeaendert() {
System.out.println(this.toString()); System.out.println(this.toString());
anzeige.aktualisieren(temperatur, feuchtigkeit, luftdruck); benachrichtigeBeobachter();
statistik.neueWerte(temperatur, feuchtigkeit, luftdruck);
vorhersage.aktuelleWerte(temperatur, feuchtigkeit, luftdruck);
} }
public void setMesswerte(float temp, float feucht, float druck) { public void setMesswerte(float temp, float feucht, float druck) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment