Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.

Ähnliche Präsentationen


Präsentation zum Thema: "Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und."—  Präsentation transkript:

1

2

3

4

5

6 Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und Luftfeuchtigkeit und Druck Wetterstatistik mit mittlerer Temperatur, mittlerer Feuchtigkeit und maximal Temperatur Ergänze die Implementierung so, dass bei jedem Aufruf der Methode setMeasurements (geänderte Messwerte!) die Anzeigen aktualisiert werden. An welchen Stellen müsste der Code geändert werden, wenn eine neue Anzeige, z. B. eine Anzeige (z. B. Wettervorhersage) hinzukommt? Implementiere eine solche Anzeige und ergänze den vorliegenden Quellcode. Die Anzeige soll bei steigendem (fallendem) Druck besseres (schlechteres) Wetter voraussagen.

7 Aufgaben Version 2: Damit eine beliebige Anzahl von Displays hinzugefügt werden kann, sollen die Displays in einer ArrayList (oder in einem Vector) verwaltet werden. Welchen Typ haben Objekte die in einer ArrayList verwaltet werden? Welche Probleme ergeben sich daraus bei der Aktualisierung (Aufruf der Methode update()) der Displays? Damit die Aktualisierung der Displays in der Methode setMeasurements erfolgen kann, brauchen die Displays eine gemeinsame Schnittstelle (oder Superklasse) Wir nennen diese Klasse Observer (Beobachter), weil Sie die Veränderungen des Datenmodells "beobachtet". Wo werden in dieser Version Änderungen fällig, falls ein neues Display erzeugt werden soll? Ändere den Code durch Implementierung folgender Funktionen so ab, dass Displays während der Laufzeit hinzugefügt und entfernt werden können: Um aus der ArrayList eine bestimmtes Element zu entfernen, benötigt man die Methoden indexOf(Object elem) und remove(int index); und lagere die Aktualisierung registrierten Observer-Objekte aus der Funktion setMeasurements in die Methode notifyObservers() aus.

8 Aufgaben Version 3: Was müssen die Beobachter von WetterStation wissen, damit Sie sich auf die Liste der zu benachrichtigenden Objekte setzen können? Um zu garantieren, dass die entsprechenden Methoden bereitgestellt werden, implementiert WetterStation das Interface Observable Damit können sich künftig die Beobachter (Observer) selbst auf die Liste der zu benachrichtigenden Objekte setzen (Nachrichten abonnieren) und auch wieder aus dieser löschen. Welche Änderungen sind im Code der Observer nötig? Das Registrieren bei der Observable (WetterStation) kann gleich im Konstruktor der Observer geschehen.

9 Aufgaben Version 4: Es soll künftig auch das Datum und die Uhrzeit der Messung (Java Klasse Date) mit übergeben werden und in den Displays GUI und AktuelleWerte angezeigt werden. Welche Änderungen sind bei wie vielen und welchen Klassen notwendig? Um diese Änderungen leichter pflegen zu können, wird meist das ganze Observable-Objekt an die Methode Update übergeben. Das jeweilige Display (Observer) holt sich dann die benötigten Werte vom Observable-Objekt. Bereits bestehende Implementierungen brauchen dann nicht verändert werden.

10

11

12 Aufgaben Version 5: Die Klasse "View" enthält mehrere graphische Elemente. Ergänze die Implementierung dieser Klasse so, dass die Klasse als Display verwendet werden kann. Beim Betätigen des Buttons "Messwerte aufnehmen" sollen für Temperatur, Luftfeuchtigkeit und Druck Zufallswerte ( Math.random() erzeugt eine double-Zufallszahl zwischen 0 und 1) erzeugt und über die Methode setMeasurements an die Wetterstation übergeben werden. (Diese Aktionen implementiert man in der Methode jButton1ActionPerformed.) In der View wird außerdem die Zeit der letzten Messung angezeigt. Dies muss in der Methode update() implementiert werden

13 Aufgaben Version 6: Um View und Model noch deutlicher zu trennen, sollen nun die Aufgaben des Buttons in die Klasse Controller ausgelagert werden. Wie stellt man sicher, dass der Controller die Methode holeMesswerte() bereitstellt? Welche Klasse muss der Controller kennen, um Messwerte aufzunehmen? Welche Klassen muss View kennen?


Herunterladen ppt "Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und."

Ähnliche Präsentationen


Google-Anzeigen