Das Command Muster Deimbacher, Gölles
Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt.
Die Fernbedienung ON-Knopf 1 OFF-Knopf 1 Rückgängig Knopf
Austauschbare Befehle Die Geräte die gesteuert werden sind verschieden
Command public interface Command { public void execute(); }
Licht an… public class LightOnCommand extends Command { private Light light; public LightOnCommand(Light light) { this.light = light; } public void execute() { light.on(); Bei Ausführung wird Licht eingeschalten
Fernbedienung public class SimpleRemoteControl { private Command slot; public SimpleRemoteControl() {} public void setCommand(Command command) { slot = command; } public void buttonWasPressed() { slot.execute();
Testen der Fernbedienung public class RemoteControlTest { public static void main(String[] args) { SimpleRemoteControl remote = new SimpleRemoteControl(); Light light = new Light(); LightOnCommand lightOn = new LightOnCommand(light); remote.setCommand(lightOn); remote.buttonWasPressed(); } Erstellen der benötigten Objekte Zuweisung des Licht-An-Befehl
Aufgabenstellung Öffnen des Tores Implementiere den Befehl (Command) Zeichne das dazugehörige Klassendiagramm Öffnen des Tores Es existiert eine Klasse „EntranceGate “
Auflösung public class OpenEntraceGateCommand extends Command { private EntraceGate gate; public OpenEntraceGateCommand (EntraceGate gate) { this.gate = gate; } public void execute() { gate.openGate();
Mehr Buttons, mehr Funktionen
Rückgängig Funktion… Rückgängig Knopf
Gesamte Klassendiagramm
Erstellen des „ConreteCommand“ Schnittstelle für Befehle FuehreAus() – Fürt Funktion aus Besitzt Befehl (Befehle) Ruft Befehl auf Weiß wie die Arbeit funktioniert Kann jede Klasse sein Verbinden Action und Receiver
Weitere Anwendungsfälle
Weitere Anwendungsfälle
Vielen Dank für eure Aufmerksamkeit Deimbacher, Gölles