Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dependents, Publish-Subscribe, Listener

Ähnliche Präsentationen


Präsentation zum Thema: "Dependents, Publish-Subscribe, Listener"—  Präsentation transkript:

1 Dependents, Publish-Subscribe, Listener
Observer Pattern Dependents, Publish-Subscribe, Listener Dirk Winterling Marco Zugelder

2 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 Marco Zugelder

3 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 Marco Zugelder

4 Beispiel (Ausgangssituation)
Dirk Winterling Marco Zugelder

5 Beispiel (nach Veränderung)
Dirk Winterling Marco Zugelder

6 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 Marco Zugelder

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

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

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

10 Interaktion der Elemente
Dirk Winterling Marco Zugelder

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

12 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 Marco Zugelder

13 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 Marco Zugelder

14 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 Marco Zugelder

15 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 Marco Zugelder

16 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 Marco Zugelder

17 Literatur „Design Patterns“ Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Technische Hochschule Zürich Uni Weimar Dirk Winterling Marco Zugelder


Herunterladen ppt "Dependents, Publish-Subscribe, Listener"

Ähnliche Präsentationen


Google-Anzeigen