Observer Pattern

Aus unkompliziert.eu
Wechseln zu: Navigation, Suche

Pattern

Beschreibung eines Problems, das in ähnlicher Form immer wieder auftaucht.
Der Kern der Lösung dieses Problems wird in einer Form dargestellt, mit der man das Problem mehrfach lösen kann, ohne mehrfach das gleiche zu tun.

Observer-Pattern (Beobachter)

Problemdefinition: Falls mehrere Objekte (z.B.: Summe, Balkendiagramm, …) von einem anderen Objekt (z.B.: Zahlen, …) abhängig sind und sich dieses ändert, dann kommt es vor,
dass die Konsistenz zwischen den Objekten aufrecht gehalten werden muss und die abhängigen Objekte sich auch ändern (z.B.: Zahl änderst sich ∑ + Diagramm ändern sich auch.)

Gegenstand: Bietet eine Schnittstelle zum An- und Abmelden. Es können beliebig viele Be-obachter verwendet werden.

Beobachter: Schnittstelle, die aufgerufen wird, wenn der Beobachter sich ändert.

Spez. Gegenstand: 2 Aufgaben  Informationen speichern / alle Beobachter bei Änderung benachrichtigen

Spez. Beobachter: Beinhaltet die Aktualisierungsschnittstelle, z. B.: Formel, Zeichnung, …

Vorteile:

  • keine Broadcastnachrichten

-> Gegenstand benachrichtigt nur die Beobachter, die sich für ihn interessieren
-> spart Rechenleistung, kein dauerhaftes Prüfen auf Änderung nötig!

  • Unabhängigkeit zwischen „Spez. Beobachter“ und „Spez. Gegenstand“.

-> Sie können unabhängig voneinander definiert werden. Jederzeit neue Beobachter einfügbar.