Vier Begriffe, die immer dem Befehlsmuster zugeordnet sind, sind Befehl, Empfänger, Aufrufer und Client. Ein Befehlsobjekt kennt den Empfänger und ruft eine Methode des Empfängers auf. Werte für Parameter der Empfängermethode werden im Befehl gespeichert. Das Empfängerobjekt zum Ausführen dieser Methoden wird auch im Befehlsobjekt durch Aggregation gespeichert. Der Empfänger übernimmt dann die Arbeit, wenn die execute()-Methode im Befehl aufgerufen wird. Ein Aufrufobjekt weiß, wie ein Befehl ausgeführt wird, und führt optional eine Buchhaltung über die Befehlsausführung durch. Der Aufrufer weiß nichts über einen konkreten Befehl, er weiß nur über die Befehlsschnittstelle. Invoker-Objekte, Befehlsobjekte und Empfängerobjekte werden von einem Clientobjekt gehalten, der Client entscheidet, welche Empfängerobjekte er den Befehlsobjekten zuweist und welche Befehle er dem Aufrufer zuweist. Der Client entscheidet, welche Befehle an welchen Punkten ausgeführt werden sollen. Um einen Befehl auszuführen, wird das Befehlsobjekt an das Aufrufobjekt weitergereicht. Wir halten Sie per E-Mail auf dem Laufenden, und wir senden Ihnen die Tracking-Nummer, sobald Ihre Bestellung versendet wird, damit Sie den Status überprüfen und sehen können, wann Ihre Bestellung eintrifft. Wir verwenden mehrere Spediteure, um Bestellungen in den USA und international zu versenden; wir werden Sie mit einer Tracking-Nummer benachrichtigen, sobald Ihre Bestellung versendet wird.

Brokerobjekt verwendet Befehlsmuster, um zu identifizieren, welches Objekt welchen Befehl basierend auf dem Befehlstyp ausführen wird. CommandPatternDemo, unsere Demoklasse, verwendet die Broker-Klasse, um das Befehlsmuster zu demonstrieren. Decorator ist ein strukturelles Entwurfsmuster, mit dem Sie neue Verhaltensweisen an Objekte anfügen können, indem Sie diese Objekte in speziellen Wrapperobjekten platzieren, die das Verhalten enthalten. Dies sind nur einige der vielen Beispiele für Mustererkennung schief gegangen. Verwenden Sie das Muster, wenn es wichtig ist, mehrere Handler in einer bestimmten Reihenfolge auszuführen. Wenn Ihr Team an die funktionale Programmierung gewöhnt ist, dann wissen Sie, dass Entwurfsmuster wie das Befehlsmuster auch funktional verwendet werden können. Ein Vorteil dieser speziellen Implementierung des Befehlsmusters ist, dass der Schalter mit jedem Gerät verwendet werden kann, nicht nur mit einem Licht. Der Switch in der folgenden C-Implementierung schaltet ein Licht ein und aus, aber der Konstruktor des Switches kann alle Unterklassen von Command für seine beiden Parameter akzeptieren. Sie können z. B. den Switch so konfigurieren, dass ein Modul gestartet wird.

Das Command [1]-Entwurfsmuster ist eines der dreiundzwanzig bekannten GoF-Entwurfsmuster, die beschreiben, wie wiederkehrende Entwurfsprobleme gelöst werden können, um flexible und wiederverwendbare objektorientierte Software zu entwerfen, d. h. Objekte, die einfacher zu implementieren, zu ändern, zu testen und wiederzuverwenden sind.