Java Reference
In-Depth Information
IZustand
Das Interface IZustand definiert eine einheitliche Schnittstelle aller Zustandsklassen
mit allen zustandsbehafteten Operationen.
KonkreterZustandX
Eine Klasse KonkreterZustandX(X = A..Z) implementiert das Verhalten, das mit
einem einzigen Zustand eines Kontextobjekts verknüpft ist.
4.14.3.3 Dynamisches Verhalten
Das dynamische Verhalten des Zustandsmusters soll in Bild 4-43 anhand von zwei Zu-
standsobjekten ( x:KonkreterZustandX und y:KonkreterZustandY ) vorgestellt
werden:
:Client
:Kontext
x:KonkreterZustandX
y:KonkreterZustandY
operation()
operation()
operation()
a endereZustand (y)
operation()
operation()
operation()
operation()
operation()
operation()
Bild 4-43 Sequenzdiagramm des Entwurfsmusters Zustand
Vom Client wird eine zustandsbehaftetete Operation operation() des Kontextob-
jekts aufgerufen. Die Methode operation() der Klasse Kontext steht hier stellver-
tretend für solche zustandsbehaftete Operationen. Der Aufruf der Methode ope-
ration() wird an das aktuelle Zustandsobjekt weiterdelegiert (in diesem Fall
x:KonkreterZustandX ). Als Konsequenz ändert das Kontextobjekt seinen Zustand
über einen Aufruf von aendereZustand(y) . Damit ist die Operation beendet und die
Kontrolle geht zum Client zurück.
Setzt der Client später einen weiteren Aufruf der Methode operation() ab, wird die-
ser an das jetzt aktuelle Zustandsobjekt y:KonkreterZustandY delegiert. Damit er-
gibt sich ein anderes Verhalten beim Aufruf von operation() . Das Kontextobjekt
kann nun wieder entscheiden, ob ein Zustandswechsel nötig ist, bevor die Kontrolle
wieder zum Client wechselt.
4.14.3.4 Implementierungsalternativen
In der bisher beschriebenen Grundform des Zustandsmusters obliegt bei einem Zu-
standswechsel die Verantwortung für das Bestimmen des Nachfolgezustands dem
Kontextobjekt.
 
Search WWH ::




Custom Search