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;
public class AktuelleBedingungenAnzeige {
public class AktuelleBedingungenAnzeige implements Beobachter {
private float temperatur;
private float feuchtigkeit;
......
package wetterstation;
public interface Beobachter {
public void aktualisieren(float temp, float feucht, float druck);
}
package wetterstation;
public class StatistikAnzeige {
public class StatistikAnzeige implements Beobachter {
private float maxTemp = 0.0f;
private float minTemp = 200;
private float tempSum= 0.0f;
private int anzMesswerte;
public void neueWerte(float temp, float feucht, float druck) {
public void aktualisieren(float temp, float feucht, float druck) {
tempSum += temp;
anzMesswerte++;
......
package wetterstation;
public class VorhersageAnzeige {
public class VorhersageAnzeige implements Beobachter {
private float aktuellerLuftdruck = 29.92f;
private float letzterLuftdruck;
public void aktuelleWerte(float temp, float feucht, float druck) {
letzterLuftdruck = aktuellerLuftdruck;
public void aktualisieren(float temp, float feucht, float druck) {
letzterLuftdruck = aktuellerLuftdruck;
aktuellerLuftdruck = druck;
anzeigen();
......
package wetterstation;
import java.util.ArrayList;
import java.util.Arrays;
public class WetterDaten {
private float temperatur;
private float feuchtigkeit;
private float luftdruck;
AktuelleBedingungenAnzeige anzeige = new AktuelleBedingungenAnzeige();
StatistikAnzeige statistik = new StatistikAnzeige();
VorhersageAnzeige vorhersage = new VorhersageAnzeige();
ArrayList<Beobachter> beobachter = new ArrayList<Beobachter>(
Arrays.<Beobachter>asList(new AktuelleBedingungenAnzeige(),
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() {
System.out.println(this.toString());
anzeige.aktualisieren(temperatur, feuchtigkeit, luftdruck);
statistik.neueWerte(temperatur, feuchtigkeit, luftdruck);
vorhersage.aktuelleWerte(temperatur, feuchtigkeit, luftdruck);
benachrichtigeBeobachter();
}
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