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

Add registration possibility for observers

parent 7d492079
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,10 @@ public class AktuelleBedingungenAnzeige implements Beobachter {
private float temperatur;
private float feuchtigkeit;
public AktuelleBedingungenAnzeige(WetterDaten wetterDaten) {
wetterDaten.registriereBeobachter(this);
}
public void aktualisieren(float temp, float feucht, float druck) {
this.temperatur = temp;
this.feuchtigkeit = feucht;
......
......@@ -6,6 +6,10 @@ public class StatistikAnzeige implements Beobachter {
private float tempSum= 0.0f;
private int anzMesswerte;
public StatistikAnzeige(WetterDaten wetterDaten) {
wetterDaten.registriereBeobachter(this);
}
public void aktualisieren(float temp, float feucht, float druck) {
tempSum += temp;
anzMesswerte++;
......
......@@ -6,6 +6,10 @@ public class VorhersageAnzeige implements Beobachter {
private float letzterLuftdruck;
public VorhersageAnzeige(WetterDaten wetterDaten) {
wetterDaten.registriereBeobachter(this);
}
public void aktualisieren(float temp, float feucht, float druck) {
letzterLuftdruck = aktuellerLuftdruck;
aktuellerLuftdruck = druck;
......
package wetterstation;
import java.util.ArrayList;
import java.util.Arrays;
public class WetterDaten {
private float temperatur;
private float feuchtigkeit;
private float luftdruck;
ArrayList<Beobachter> beobachter = new ArrayList<Beobachter>(
Arrays.<Beobachter>asList(new AktuelleBedingungenAnzeige(),
new StatistikAnzeige(),
new VorhersageAnzeige()));
ArrayList<Beobachter> beobachter = new ArrayList<Beobachter>();
public void registriereBeobachter(Beobachter b) {
beobachter.add(b);
}
public void entferneBeobachter(Beobachter b) {
int i = beobachter.indexOf(b);
if (i >= 0) {
beobachter.remove(i);
}
}
public void benachrichtigeBeobachter() {
for (int i = 0; i < beobachter.size(); i++) {
Beobachter observer = (Beobachter)beobachter.get(i);
......
......@@ -2,9 +2,14 @@ package wetterstation;
public class WetterStation {
@SuppressWarnings("unused")
public static void main(String[] args) {
WetterDaten wetterDaten = new WetterDaten();
AktuelleBedingungenAnzeige aktuelleAnzeige = new AktuelleBedingungenAnzeige(wetterDaten);
StatistikAnzeige statistikAnzeige = new StatistikAnzeige(wetterDaten);
VorhersageAnzeige vorhersageAnzeige = new VorhersageAnzeige(wetterDaten);
wetterDaten.setMesswerte(30, 65, 30.4f);
wetterDaten.setMesswerte(32, 70, 29.2f);
wetterDaten.setMesswerte(28, 90, 29.2f);
......
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