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