Java Reference
In-Depth Information
Klassisch würde ein Beobachter per Polling 55 anfragen, ob sich Daten geändert haben.
Beim Beobachter-Muster ist jedoch die Kontrolle vertauscht - die Kontrolle hat der
Beobachtbare. Bei einer Änderung der Daten generiert der Beobachtbare ein Ereignis
für den Beobachter. Diese Vorgehensweise beim Beobachter-Muster entspricht also
dem Prinzip " Inversion of Control " (siehe Kapitel 1.9.2).
Das folgende Bild zeigt die Abhängigkeit einer Beobachter-Klasse von der beobacht-
baren Klasse:
:Beobachter
:Beobachter
«use»
«use»
:Beobachtbar
Bild 4-33 Abhängigkeit eines Beobachters vom beobachtbaren Objekt
Eine Verwendungsbeziehung ist eine spezielle semantische Ausprägung einer Ab-
hängigkeitsbeziehung . Eine Verwendungsbeziehung wird durch «use» charakteri-
siert. Der Benutzende ist der Abhängige. Der Benutzte ist der Unabhängige.
In der Regel ist ein Beobachter nicht nur daran interessiert, ob sich ein von ihm beo-
bachtetes Objekt ändert, sondern auch daran, was sich bei dem Objekt geändert hat,
bzw. wie dessen neuer Zustand ist. Um den Beobachtern den neuen Zustand mitzutei-
len, gibt es im Rahmen dieses Musters zwei verschiedene Verfahren. Im Push-Ver-
fahren wird der neue Zustand an die Aktualisierungs-Operation übergeben - die Da-
ten werden einem Beobachter "zugeschoben". Im Pull-Verfahren ist der Beobachter
hingegen selbst für das Abfragen des neuen Zustandes verantwortlich - er "zieht" sich
die Daten, wenn er informiert wurde, dass die Daten sich geändert haben. Hierfür be-
nötigt er eine Referenz auf den Beobachtbaren, der eine Methode für die Abfrage der
geänderten Daten zur Verfügung stellen muss. Im Folgenden wird das Pull-Verfahren
behandelt. Das Push-Verfahren wird dann in Kapitel 4.11.3.3 im Detail vorgestellt. Dort
wird auch ein Vergleich zwischen beiden Verfahren durchgeführt.
4.11.3.1 Klassendiagramm
Charakteristisch für das Beobachter-Muster in der Pull-Variante sind zwei Methoden,
die Methode aktualisieren() und die Methode gibZustand() . Beim Aufruf der
Methode aktualisieren() übergibt ein beobachtbares Objekt eine Referenz auf
55 to poll (engl.) bedeutet abfragen. In der Informatik hat Polling die Bedeutung, dass mittels regelmä-
ßiger zyklischer Abfragen der Zustand von Daten (Objekten, Geräten etc.) ermittelt wird.
Search WWH ::




Custom Search