Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > 22.09.2008 Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.

Slides:



Advertisements
Ähnliche Präsentationen
Klassen - Verkettete Liste -
Advertisements

DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Einführung in die Programmierung Zusammenfassung
6.3 Ereignisbasierte Systeme Ereignis (event) : eine Ereignis-Quelle (event source, publisher) generiert Benachrichtigung (event notification), an der.
Design Patterns- Entwurfsmuster
Threads Richard Göbel.
MVC.
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Erweiterte Zuweisungskompatibilität
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
DO...WHILE Anweisung.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Abstrakter Datentyp in C++ I - Klasse -
Transaction Script Software Component Technology for Distributed Applications.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Entwurfsmuster – Iterator
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.
Dependents, Publish-Subscribe, Listener
C++ Vererbung und Polymorphie
DVG Einführung in Java1 Einführung in JAVA.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Klassen und Schnittstellen Klasse: Definiert Zustandsraum ihrer Instanzen vollständig (Implementierung der Struktur, soweit Voraussetzung für die Methoden-
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
UML Begleitdokumentation des Projekts
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Teil II Objekte ergeben ein Ganzes
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Konzepte der objektorientierten Programmierung
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Komponentenschnittstellen (1)
1.5 Das Entwurfsmuster Kompositum
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Das Command Muster Deimbacher, Gölles.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
2 Datenabstraktion Geheimnisprinzip:
Objektorientierte (OO) Programmierung
GAME PROGRAMMING PATTERNS – FLYWEIGHT & OBSERVER Robert Nystrom Softwaretechnologie II Teil 2 Anike Schulz.
FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias.
Tutorium Software-Engineering SS14 Florian Manghofer.
Java Programme nur ein bisschen objektorientiert.
Patterns Entwurfsmuster - Wie spart man sich Arbeit ?
Tutorium Software-Engineering SS14 Florian Manghofer.
Operator Overloading, Mehrfachvererbung, Safe Pointer, Observer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Das Entwurfsmuster Model-View-Controller
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
1.Event Queue.
„Wie kann man Kinder und Jugendliche vor dem Rauchen schützen!“
Grundkurs Informatik 11-13
Programmiermethodik Übung 9
Interfaces Definition von Interfaces Verwendung von Interfaces
1. Die rekursive Datenstruktur Liste 1
Statische und Nichtstatische Methoden Properties / Eigenschaften
Test Summary: ein Fehler pro Tag Test First
Grundkurs Informatik 11-13
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
Juli 19 Informatik Kurse
 Präsentation transkript:

Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown Boveri (ABB) Deutsches Zentrum für Luft- und Raumfahrt (DLR)

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 2 Gliederung Das erwartet Sie… Allgemein Wovon reden wir überhaupt? Beispiel Die Tageszeitung UML Darf natürlich nicht fehlen Vor- und Nachteile Benutzen oder nicht benutzen? Beispiel Mal was Praktisches

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 3 Allgemein Wovon reden wir überhaupt? Entwurfsmuster -> Verhaltensmuster dient der Weitergabe von Änderungen an einem Objekt bezieht sich auf von diesem Objekt abhängige Strukturen ideal wenn Instanzen verschiedener Klassen über Änderungen informiert werden sollen

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 4 Allgemein Ein Bild dazu

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 5 Beispiel Die Tageszeitung „veröffentlichen und abonnieren“ wird ständig produziert (aktualisiert) Kunden können ein Abo abschließen oder ein bestehendes kündigen Verlag das Subject (Publisher) Abokunden die Observer

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 6 UML Mal ein Klassendiagramm dazu…

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 7 UML … und ein Sequenzdiagramm

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 8 Vor- und Nachteile Benutzen oder nicht benutzen? Vorteil Subjekt und Observer sind lose gekoppelt Subjekt brauch keine Kenntnisse über die Observer bedient nur die Observer-Schnittstelle Broadcast-Kommunikation Benachrichtigung muss den Empfänger nicht kennen. Nachteil unerwartete Updates: Der Beobachter weiß nicht, wie viele weitere Beobachter es gibt, und kann daher auch nicht einschätzen, wie aufwändig eine Statusänderung ist

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 9 Beispiel Mal was Praktisches… Reaktion auf asynchrone Ereignisse GUI Programmierung Reaktion auf Benutzer Ereignisse Observer wird zu Listener Model View Controller - Pattern Lose Kopplung mit dem Model Synchronisierung von Model und View Überwachung von komplexen Objekten bis hin zu einzelnen Attributen PropertyChangeListener (JDK)

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 10 Beispiel … und ein bisschen Code public interface FooListener { void somethingHappend(String happening); } public class Foo { private List listeners = new ArrayList (); public void addListener(FooListener listener) { listeners.add(listener); } public void removeListener(FooListener listener) { listeners.remove(listener); } public void notifyListeners(String happening) { for(FooListener listener : listeners) { listener.somethingHappend(happening); }

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 11 Beispiel … und ein bisschen Code class Bar { public static void main() { Foo myFoo = new Foo(); FooListener listener = new FooListener() { public void somethingHappend(String happening) { // Do something with the happening... } }; myFoo.addListener(listener);... myFoo.doSomethingWhereSomethingHappend();... myFoo.removeListener(listener); }

Neukonzeptioneriung des SVNCheckers > Malte Legenhausen > DLR > Folie 12 Ende Das war es auch schon... Head First, Design Patterns von O‘Reilly