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