Java Reference
In-Depth Information
kann dann diese Argumente beim Aufruf der Methode
aktion()
an das Empfänger-
objekt weitergeben.
4.10.3.2 Teilnehmer
IBefehl
Das Interface
IBefehl
definiert die Operation
fuehreAus()
für das Ausführen von
Befehlen.
KonkreterBefehl
Die Klasse
KonkreterBefehl
implementiert das Interface
IBefehl
. Die Klasse
KonkreterBefehl
steht hier stellvertretend für alle möglichen Varianten von Befehls-
klassen. Diese Klassen kapseln einen Befehl und speichern die zum Ausführen des
Befehls nötigen Informationen wie etwa einen Parameter. Zu diesen Informationen ge-
hört auch eine Referenz auf das Objekt der Klasse
Empfaenger
. Der Rumpf von
fuehreAus()
enthält den Aufruf der Methode
aktion()
des gespeicherten Empfän-
gers.
Client
Der Client steht stellvertretend für die Anwendung. Er erzeugt ein Objekt der Klasse
KonkreterBefehl
, welches die auszuführende Aktion (Befehl) darstellt und eine Re-
ferenz auf ein Objekt der Klasse
Empfaenger
beinhaltet. Außerdem übergibt der
Client einen konkreten Befehl an den Aufrufer mit Hilfe der Methode
speichereBe-
fehl()
. Ein Client kann beispielsweise die Ausführung des Befehls auslösen, indem
er die Methode
aktivieren()
des Aufrufers aufruft.
Aufrufer
Ein Aufrufer in der hier beschriebenen Grundform des Musters speichert eine Referenz
auf einen Befehl. Der Typ dieser Referenz ist
IBefehl
. Nach dem liskovschen Substi-
tutionsprinzip und bei Einhaltung der Verträge kann diese Referenz zur Laufzeit auf je-
des Befehlsobjekt zeigen, dessen Klasse das Interface
IBefehl
implementiert. Soll
die Ausführung des gespeicherten Befehls ausgelöst werden, ruft der Aufrufer die Me-
thode
fuehreAus()
des gespeicherten Befehls auf.
Empfaenger
Die Klasse
Empfaenger
kennt als einzige die Details über die mit der Ausführung ei-
nes Befehls verknüpften Operationen. Die Klasse
Empfaenger
kann von Anwendung
zu Anwendung des Befehlsmusters unterschiedlich sein. Hier wird beispielhaft eine
Methode
aktion()
der Klasse
Empfaenger
benutzt, deren Ausführung durch ein
Befehlsobjekt gekapselt wird. Wird also ein Befehl ausgeführt, wird die Methode
aktion()
des im Befehlsobjekt gespeicherten Empfängerobjekts ausgeführt.
4.10.3.3 Dynamisches Verhalten
Nachdem der Client ein Objekt der Klasse
KonkreterBefehl
erzeugt und dem Auf-
rufer übergeben hat, erfolgt in diesem Beispiel der Aufruf der Methode
aktivieren()
des Aufruferobjekts. Damit wird die Ausführung des Befehls initiiert. Der Aufrufer ruft
Search WWH ::
Custom Search