From c20c85211a85bfbd21dc6783432995e81cca1277 Mon Sep 17 00:00:00 2001 From: Peter Hertkorn <peter.hertkorn@reutlingen-university.de> Date: Thu, 12 Nov 2020 18:51:58 +0100 Subject: [PATCH] Change notification to pull method --- .../AktuelleBedingungenAnzeige.java | 10 ++++---- src/wetterstation/Beobachter.java | 2 +- src/wetterstation/StatistikAnzeige.java | 24 +++++++++---------- src/wetterstation/Subjekt.java | 2 +- src/wetterstation/VorhersageAnzeige.java | 10 ++++---- 5 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/wetterstation/AktuelleBedingungenAnzeige.java b/src/wetterstation/AktuelleBedingungenAnzeige.java index c3c7eaa..03256ee 100644 --- a/src/wetterstation/AktuelleBedingungenAnzeige.java +++ b/src/wetterstation/AktuelleBedingungenAnzeige.java @@ -10,12 +10,10 @@ public class AktuelleBedingungenAnzeige implements Beobachter { wetterDaten.registriereBeobachter(this); } - public void aktualisieren(Subjekt s) { - if (s instanceof WetterDaten) { - this.temperatur = ((WetterDaten) s).getTemperatur(); - this.feuchtigkeit = ((WetterDaten) s).getFeuchtigkeit(); - anzeigen(); - } + public void aktualisieren() { + this.temperatur = wetterDaten.getTemperatur(); + this.feuchtigkeit = wetterDaten.getFeuchtigkeit(); + anzeigen(); } public void anzeigen() { diff --git a/src/wetterstation/Beobachter.java b/src/wetterstation/Beobachter.java index 3b1dff4..1a37fd3 100644 --- a/src/wetterstation/Beobachter.java +++ b/src/wetterstation/Beobachter.java @@ -1,5 +1,5 @@ package wetterstation; public interface Beobachter { - public void aktualisieren(Subjekt s); + public void aktualisieren(); } diff --git a/src/wetterstation/StatistikAnzeige.java b/src/wetterstation/StatistikAnzeige.java index 8510449..6c0bc81 100644 --- a/src/wetterstation/StatistikAnzeige.java +++ b/src/wetterstation/StatistikAnzeige.java @@ -13,22 +13,20 @@ public class StatistikAnzeige implements Beobachter { wetterDaten.registriereBeobachter(this); } - public void aktualisieren(Subjekt s) { - if (s instanceof WetterDaten) { - float temp = ((WetterDaten) s).getTemperatur(); - tempSum += temp; - anzMesswerte++; + public void aktualisieren() { + float temp = wetterDaten.getTemperatur(); + tempSum += temp; + anzMesswerte++; - if (temp > maxTemp) { - maxTemp = temp; - } + if (temp > maxTemp) { + maxTemp = temp; + } - if (temp < minTemp) { - minTemp = temp; - } - - anzeigen(); + if (temp < minTemp) { + minTemp = temp; } + + anzeigen(); } public void anzeigen() { diff --git a/src/wetterstation/Subjekt.java b/src/wetterstation/Subjekt.java index 9762c38..cb7e2cb 100644 --- a/src/wetterstation/Subjekt.java +++ b/src/wetterstation/Subjekt.java @@ -19,7 +19,7 @@ public abstract class Subjekt { public void benachrichtigeBeobachter() { for (int i = 0; i < beobachter.size(); i++) { Beobachter observer = (Beobachter)beobachter.get(i); - observer.aktualisieren(this); + observer.aktualisieren(); } } diff --git a/src/wetterstation/VorhersageAnzeige.java b/src/wetterstation/VorhersageAnzeige.java index ec52e1c..1faa923 100644 --- a/src/wetterstation/VorhersageAnzeige.java +++ b/src/wetterstation/VorhersageAnzeige.java @@ -11,12 +11,10 @@ public class VorhersageAnzeige implements Beobachter { wetterDaten.registriereBeobachter(this); } - public void aktualisieren(Subjekt s) { - if (s instanceof WetterDaten) { - letzterLuftdruck = aktuellerLuftdruck; - aktuellerLuftdruck = ((WetterDaten) s).getLuftdruck(); - anzeigen(); - } + public void aktualisieren() { + letzterLuftdruck = aktuellerLuftdruck; + aktuellerLuftdruck = wetterDaten.getLuftdruck(); + anzeigen(); } public void anzeigen() { -- GitLab