Java Reference
In-Depth Information
4.10 Das Verhaltensmuster Befehl
4.10.1
Name/Alternative Namen
Befehl, Kommando (engl. command), Aktion (engl. action).
4.10.2
Problem
Das Befehlsmuster soll einen Befehl, eine Aktion, eine Anfrage bzw. einen Methoden-
aufruf - im Folgenden kurz Befehl genannt - in einem Objekt kapseln.
Durch das Befehlsmuster soll die Erteilung und die Auslösung eines Befehls zeitlich
entkoppelt werden. Das bedeutet, dass das Erzeugen eines Befehls und seine Aus-
führung zu verschiedenen Zeiten stattfinden können.
Der Aufrufer soll nicht von der Ausprägung eines konkreten Befehls abhängen. Er soll
nur die Abstraktion eines Befehls kennen und somit sollen Details eines konkreten
Befehls vor dem Aufrufer verborgen bleiben. Damit sollen verschiedene Implementie-
rungen eines Befehls möglich sein, z. B. "rechts", "links", "oben", "unten". Außerdem
soll der Aufrufer den Empfänger des Befehls nicht kennen.
Das Befehlsmuster soll die Details eines Befehls vor dem Aufru-
fer des Befehls verbergen. Es soll es erlauben, dass die Erzeu-
gungszeit und die Ausführungszeit des Befehls getrennt werden
können.
4.10.3
Lösung
Das Verhaltensmuster Befehl ist ein objektbasiertes Entwurfsmuster. Ein konkreter Be-
fehl entspricht einem Methodenaufruf oder einer Folge von Methodenaufrufen auf ei-
nem Empfängerobjekt. Ein konkreter Befehl selbst wird zusammen mit der Referenz
auf das Empfängerobjekt in einem auf dem Interface IBefehl basierenden Objekt ge-
kapselt und wird einem Aufrufer übergeben . Der Aufrufer hängt so nicht von den De-
tails des Befehls ab, sondern nur vom Interface IBefehl . Gibt der Aufrufer das Inter-
face selbst vor, ist er natürlich nicht von ihm abhängig. Das Muster macht aber keine
Aussage darüber, wer das Interface vorgibt.
Ein Client bzw. eine Anwendung erstellt konkrete Befehle und
weist ihnen einen Empfänger zu.
Die Klasse KonkreterBefehl implementiert das Interface IBefehl . Der entspre-
chende Empfänger und die auszuführenden Methoden müssen dem konkreten Befehl
jeweils bekannt sein.
Search WWH ::




Custom Search