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

Slides:



Advertisements
Ähnliche Präsentationen
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Advertisements

DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Objektorientierter Entwurf (OOD) Übersicht
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Objektorientierung
MVC.
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Dependents, Publish-Subscribe, Listener
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Die Steigung m In der allgemeinen Funktionsgleichung y=mx+b
Einführung in die Programmierung Datensammlung
Kollektionstypen (1) Es sind polymorphe Typkonstruktoren, jeweils als Sorten- und als Klassenkonstruktor (t,v beliebige Typen): –set, Set :Ungeordnete.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
CRM Editor auf der Basis von Qt (Beispiel von Ubi erat Lupa)
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Java programmieren mit JavaKara
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Konzepte der objektorientierten Programmierung
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Chipkarten Projekt Die Multi-Abo-Karte WS 2002 / 2003.
..:: MULTI – ABO – KARTE ::.. Projektstudium Chipkarten SS 2003 Vortragende: Katrin Kampfmann, Alexander Lamprati (PM)
CGI (Common Gateway Interface)
Tutorium PG Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.
Java Programmierung.
Objectives Verstehen was unterDelegate verstanden wird
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #5 Philipp Effenberger
Arrays und ArrayLists In JAVA.
Arrays und ArrayLists In JAVA.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs Übung Besprechung der Hausaufgabe
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Ein- und Ausgabe in Java Packet: java.io
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
GAME PROGRAMMING PATTERNS – FLYWEIGHT & OBSERVER Robert Nystrom Softwaretechnologie II Teil 2 Anike Schulz.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.
242/102/49 0/51/59 181/172/166 Primary colors 248/152/29 PMS 172 PMS 137 PMS 546 PMS /206/ /227/ /129/123 Secondary colors 114/181/204.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
Konstruktoren.
Zufall in Java Zwei Möglichkeiten.
1. Die rekursive Datenstruktur Liste 1
Datenstrukturen und Softwareentwicklung
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
 Präsentation transkript:

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.

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.

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.

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.

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

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?