Das Command MusterDeimbacher, Gölles
Fakten
• Verhaltensmuster• GoF – Muster• Auslösender und Ausführender
sind entkoppelt.
Die Fernbedienung
Rückgängig Knopf
ON-Knopf 1
OFF-Knopf 1
• Austauschbare Befehle
• Die Geräte die gesteuert werden sind
verschieden
public interface Command {
public void execute();
}
Command
public class LightOnCommand extends
Command {
private Light light;
public LightOnCommand(Light light)
{
this.light = light;
}
public void execute() {
light.on();
}
}
Licht an…
Bei Ausführung wird Licht eingeschalten
Fernbedienungpublic class SimpleRemoteControl {
private Command slot;
public SimpleRemoteControl() {}
public void setCommand(Command command) {
slot = command;
}
public void buttonWasPressed()
{
slot.execute();
}
}
Testen der Fernbedienungpublic 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• 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
• Besitzt Befehl (Befehle)• Ruft Befehl auf
• Schnittstelle für Befehle• FuehreAus() – Fürt Funktion aus
• Verbinden Action und Receiver• Weiß wie die Arbeit
funktioniert• Kann jede Klasse sein
• Erstellen des „ConreteCommand“
Weitere Anwendungsfälle
Weitere Anwendungsfälle
Vielen Dank für eure Aufmerksamkeit
Deimbacher, Gölles