Java Reference
In-Depth Information
Die Referenz auf den Empfänger und die Methoden sind im Ob-
jekt der Klasse KonkreterBefehl gespeichert.
Der Aufrufer erhält vom Client den Befehl und hat die Aufgabe,
die Ausführung eines Befehls zu initiieren.
Auslöser zur Ausführung eines Befehls kann beispielsweise das Drücken eines But-
tons (einer Schaltfläche) einer grafischen Oberfläche sein. Der Button übernimmt in
diesem Falle die Rolle eines Aufrufers.
Der Aufrufer entkoppelt die Erzeugung eines Befehls von seiner Ausführung. Ein
Client kann einen Befehl erzeugen und ihn an einen Aufrufer übergeben, der gleiche
Client oder aber auch ein anderer kann zu einem späteren Zeitpunkt die Ausführung
des Befehls veranlassen.
In der im Folgenden beschriebenen Grundform des Musters ist es die Aufgabe des
Aufrufers, einen Befehl vom Client entgegenzunehmen, zu speichern und auf Anfor-
derung auszuführen. Die Anforderung kann beispielsweise - wie bereits erwähnt -
durch das Drücken einer Schaltfläche durch den Client erfolgen. Je nach Ausprägung
des Befehlsmusters kann der Aufrufer sehr komplex sein (siehe Kapitel 4.10.5).
Der Aufrufer stellt in der Grundform des Musters eine Methode
speichereBefehl() bereit, mit deren Hilfe ein Client einen Be-
fehl übergibt. Außerdem besitzt der Aufrufer eine Methode akti-
vieren() . In dieser Methode aktivieren() wird die Methode
fuehreAus() des Befehlsobjekts aufgerufen. Die Methode
fuehreAus() sorgt dafür, dass die Methode aktion() , d. h.
die Ausführung des Befehls, auf dem Empfängerobjekt aufgeruf-
en wird.
Die Methode aktion() symbolisiert eine Methode des Empfängerobjekts zur Ausfüh-
rung des Befehls. Wird der Befehl ausgeführt, so ruft das entsprechende Befehlsobjekt
die Methode aktion() des Empfängerobjekts auf.
Auf Grund des liskovschen Substitutionsprinzips ist bei Einhaltung der Verträge ein
Aufrufer in der Lage, auch Befehlsobjekte von anderen konkreten Befehlsklassen, die
das Interface IBefehl implementieren, entgegenzunehmen, zu speichern und auszu-
führen. Ebenso können dann die Referenzen auf solche Befehlsobjekte in einer Liste
aufgereiht werden, um beispielsweise die Historie ihrer Ausführung zu speichern.
Search WWH ::




Custom Search