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