Dependents, Publish-Subscribe, Listener

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Vorstellung der Möglichkeiten im Anpassungsmodus
Blue J.
Prüfung objektorientierter Programme -1
Harald Köbler Software Design Patterns Prototype.
Rollenbasierter Entwurf am Beispiel eines benutzeradaptierbaren Hyperbooks Institut für Informatik Rechnergestützte Wissensverarbeitung Universität Hannover.
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Design Patterns- Entwurfsmuster
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Content-Entwicklung mit Design Patterns
Java: Objektorientierte Programmierung
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
Sebastian Grahn Sebastian Kühn
MVC – ein Architekturmuster
Vererbung Spezialisierung von Klassen in JAVA möglich durch
Programmierpraktikum eXtreme Programming 2005
Vorstellungsbildung im Literaturunterricht
1/25 UNIVERSITY OF PADERBORN Projektgruppe KIMAS Projektgruppe KIMAS MultiAgenten-Systeme Andreas Goebels.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2010/11 m.
Remote Methode Invocation (RMI)
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.
Command Pattern Karola Schäuble,
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
Entwurfsmuster EDV Entwurfsmuster.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
FH-Hof Adapter & Facade Pattern Richard Göbel. FH-Hof Motivation Gegeben ist eine Klasse mit vorhandenen Methoden Gefordert ist eine Klasse, die ein bestimmtes.
Proseminar Java Beans Events gehalten von Richard Gottwald Lehrstuhl: Prof. Dr. Dr.h.c. J. Eickel Betreuerin:Mag. Phil. R. Höllerer.
Spieldesign Allgemein Design Patterns Kommunikation zw. Objekten
Unterschiede – Anforderungen - Schnittstellen Website vs. Social Web Eckhard Sedlmayer.
Erstellen von Animationen
Formular- und Dokumentenarchivierung
Bitrix Intranet Version 11.5.
Objektorientierte Programmierung
PECH (Notdienst) ONDERWEG (Europa) SERVICE DIE Lösung für: WERKSTÄTTEN & COMPANY FLEETS (Fleetcontrol) Abend- / Nacht- Wochenendschicht (Aber auch während.
Service Design by EstherKnaus® Der Benchmark für Dienstleistungen
„Bring Dich ein!“ Schnelle Hilfe im Alltag
Die 7 wichtigsten Punkte zur Volumenaktivierung mit Windows 7, die Sie beachten sollten © 2009 Microsoft Corporation. Alle Rechte vorbehalten. Als IT-Experte.
Konzepte der objektorientierten Programmierung
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Wie fit zu bleiben.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Graphik, Doku und Monitor für TWS
UML-Kurzüberblick Peter Brusten.
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Java Programmierung.
Unsere Kinder für das Reich Gottes gewinnen
ENDLICHE KÖRPER RSA – VERFAHREN.
Objektorientierung.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Software Design Patterns
OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Dieser Vortrag wird gesponsort von:
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Mit dieser Präsentation möchte ich euch etwas über den Scanner TS8 erzählen, da er ein sehr nützlicher Lichteffekt ist.
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.
Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006.
Referent Elmar Borgmeier, Stuttgart, 05. Mai 2006
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.
ITk Fakten Szenarien und Wünsche LoI Layout Conical 5 pixel layersnical wahrscheinlich ≥ 5 Pixellagen 2 x 6 disks sobald Funding „steht“ für Pixel und.
Kooperatives Lernen.
Patterns Entwurfsmuster - Wie spart man sich Arbeit ?
Operator Overloading, Mehrfachvererbung, Safe Pointer, Observer.
 Präsentation transkript:

Dependents, Publish-Subscribe, Listener Observer Pattern Dependents, Publish-Subscribe, Listener Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Problemdefinition Falls mehrere Objekte von einander abhängig sind und eines dieser Objekte geändert wird, sollen alle davon abhängigen über die Änderung informiert werden. 1 zu n Beziehung (keine Begrenzung der abhängigen Objekte) Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Lösung Sehr enge Kopplung zwischen dem Objekt und seinen Observern  wenig flexibel, kaum wiederverwendbar z.B. wenn ein neuer Observer (Listener) hinzugefügt werden soll Trennung der Beteiligten voneinander  Observer muss von Änderungen erfahren Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Beispiel (Ausgangssituation) Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Beispiel (nach Veränderung) Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Anwendungsmöglichkeiten Wenn bei einer Änderung eines Objektes andere Objekte geändert werden müssen, man aber nicht weiß, wie viele Objekte dies sind. Wenn ein Objekt in der Lage sein soll andere Objekte zu benachrichtigen, ohne zu wissen, welche diese sind. (Vermeidung einer engen Kopplung zwischen Objekten) Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Strukturdiagramm Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Beteiligte Objekte Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Methoden im Detail Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Interaktion der Elemente Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Codebeispiel Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Vorteile Das Observer-Pattern ermöglicht es Subjekte und Observer getrennt zu behandeln (z.B. auszutauschen) abstrakte Kopplung zwischen Subjekt und Observer: Ein Subjekt weiß nur, welche Observer bei ihm registriert sind, kennt also deren konkrete Subklassen nicht. Unterstützung von Broadcast-Kommunikation: die Anzahl der zu benachrichtigenden Observer durch das Subjekt ist beliebig. Daher können Observer zu jeder Zeit hinzugefügt oder abgemeldet werden. Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Nachteile Unerwartete Updates: Da die Observer nicht gegenseitig ihrer Existenz bewußt sind, können unerwünschte Effekte auftreten. Beispielsweise kann die durch einen Observer ausgelöste Änderung zu einer aufwendigen Kaskasde von Änderungen in den anderen Observern führen Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Active Observers ( Pull-Observers, Voyeur Patterns) Das Subjekt informiert den Observer lediglich über eine Veränderung. Der Observer fragt nun seinerseits bei dem Subjekt nach, welche Veränderung durchgeführt wurde und holt sich die für ihn notwendigen Änderungen ab Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Passive Observers ( Push-Observers) Das Subjekt informiert alle Observer detailliert über die durchgeführten Änderungen. Alle Informationen werden übergeben, egal ob der Observer sie verwerten kann oder nicht. Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Change Manager Die Interaktionen zwischen Subjekt und Observer können durchaus sehr komplex sein. Bildet die Schnittstelle zwischen Subjekt und Observer Er definiert Update-Strategien Er aktuallisiert alle Observer auf den Wunsch eines Subjektes Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de

Literatur „Design Patterns“ Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Technische Hochschule Zürich Uni Weimar Dirk Winterling dw08@hdm-stuttgart.de Marco Zugelder mz10@hdm-stuttgart.de