Java Reference
In-Depth Information
4.10.3.1 Klassendiagramm
Ein konkreter Befehl implementiert das Interface IBefehl und definiert dadurch die
Methode fuehreAus() .
Ein Client erzeugt einen konkreten Befehl und speichert im erzeugten Befehlsobjekt
eine Referenz auf den konkreten Empfänger. Der Client übergibt einem Aufrufer mit
Hilfe der Methode speichereBefehl() eine Referenz auf den erzeugten konkreten
Befehl. Ein Client muss den Empfänger also kennen, aber nicht der Empfänger den
Client. Dies ist durch die Einschränkung der Navigationsrichtung der Assoziation zwi-
schen Client und Empfänger im Klassendiagramm ausgedrückt:
Aufrufer
+aktivieren()
+ speichereBefehl()
«interface»
IBefehl
+fuehreAus()
«use»
Empfaenger
+aktion()
Client
Konkreter-
Befehl
+fuehreAus()
«Create»
fuehreAus() ruft auf:
:Empfaenger.aktion()
Bild 4-30 Klassendiagramm des Befehlsmusters
Ein Client kann beispielsweise die Ausführung eines von einem Aufrufer gespeicherten
Befehls auslösen, indem er die Methode aktivieren() des Aufrufers aufruft. Der
Aufrufer wird dadurch veranlasst, die Methode fuehreAus() des gespeicherten Be-
fehls aufzurufen. In seiner Methode fuehreAus() ruft der konkrete Befehl die Metho-
de aktion() des Empfängers auf, d. h. die Ausführung wird weiterdelegiert.
Die Methode aktivieren() wird hier beispielhaft benutzt. Das Muster lässt offen,
wer für die Auslösung der Ausführung eines Befehls zuständig ist. Beispielsweise
könnte ein Aufrufer zeitgesteuert arbeiten. Ein Client könnte die gewünschte Ausfüh-
rungszeit bei der Übergabe eines Befehls an den Aufrufer spezifizieren. Der Aufrufer
trägt dann dafür Sorge, dass der Befehl zu der gewünschten Zeit ausgeführt wird. Die-
se und weitere Varianten des Musters werden in Kapitel 4.10.5 erläutert.
Die Methode aktion() steht hier stellvertretend für eine Methode, die mit Hilfe eines
Befehls ausgeführt werden soll. Eine solche Methode kann natürlich auch parametri-
siert sein. Die Argumente für die Parameter können entweder durch einen entspre-
chenden Konstruktor oder durch set-Methoden, die die konkrete Befehlsklasse zur
Verfügung stellen muss, an das Befehlsobjekt übergeben werden. Das Befehlsobjekt
 
Search WWH ::




Custom Search