Java Reference
In-Depth Information
dem in welchem aktuellen Zustand sich ein Kontextobjekt befindet. Im Folgenden steht
die Methode
operation()
beispielhaft für die zustandsabhängigen Methoden der
Klasse
Kontext
.
Ein Kontextobjekt speichert seinen aktuellen Zustand, indem es ein Objekt einer
kon-
kreten Zustandsklasse
aggregiert. Alle Zustandsklassen implementieren dabei das-
selbe Interface bzw. sind von einer gemeinsamen
abstrakten Basisklasse
abgeleitet.
Diese Struktur ist in folgendem Bild dargestellt:
Client
«use»
Kontext
«interface»
IZustand
- zustand : IZustand
+ operation()
+ operation()
- aendereZustand (IZustand)
KonkreterZustandX
+ operation()
KonkreterZustandY
KonkreterZustandZ
operation()
ruft auf:
zustand.operation()
+ operation()
+ operation()
Bild 4-42 Klassendiagramm des Entwurfmusters Zustand
Jede
konkrete Zustandsklasse
ist verantwortlich für das Verhalten eines Kontextob-
jekts in diesem Zustand. Hierzu realisiert die konkrete Zustandsklasse alle zustands-
abhängigen Operationen, die in dem gemeinsamen Interface
IZustand
definiert sind.
Wird nun die zustandsabhängige Operation
operation()
des Kontextobjekts aufge-
rufen, so delegiert dieses den Aufruf an die entsprechende Methode des aktuell refe-
renzierten Zustandsobjektes.
Ein Client kann nicht direkt Zustandsänderungen durchführen, diese Aufgabe obliegt
allein dem Kontextobjekt. Dazu dient die private Methode
aendereZustand()
. Das
bedeutet, dass ein Client in diesem Muster unabhängig von dem Interface
IZustand
und von den konkreten Zustandsklassen ist.
4.14.3.2 Teilnehmer
Client
Ein
Client
ruft die öffentlichen Methoden des Kontextobjekts auf. Er kennt dabei das
Interface
IZustand
nicht und auch keine Klassen, die dieses realisieren.
Kontext
Objekte der Klasse
Kontext
können ihr Verhalten abhängig von ihrem internen Zu-
stand ändern. Der interne Zustand wird dabei über eine Referenz auf ein Zustandsob-
jekt, das die Schnittstelle
IZustand
implementieren muss, gespeichert. Bei einem Zu-
standsübergang zeigt die Referenz auf ein neues Zustandsobjekt.
Search WWH ::
Custom Search