17
Das Command Muster Deimbacher, Gölles

Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Embed Size (px)

Citation preview

Page 1: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Das Command MusterDeimbacher, Gölles

Page 2: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Fakten

• Verhaltensmuster• GoF – Muster• Auslösender und Ausführender

sind entkoppelt.

Page 3: Das Command Muster Deimbacher, 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

Page 4: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

• Austauschbare Befehle

• Die Geräte die gesteuert werden sind

verschieden

Page 5: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

public interface Command {

public void execute();

}

Command

Page 6: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

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

Page 7: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Fernbedienungpublic class SimpleRemoteControl {

private Command slot;

public SimpleRemoteControl() {}

public void setCommand(Command command) {

slot = command;

}

public void buttonWasPressed()

{

slot.execute();

}

}

Page 8: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

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

Page 9: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Aufgabenstellung• Implementiere den Befehl (Command)

• Zeichne das dazugehörige Klassendiagramm

Öffnen des Tores

Es existiert eine Klasse „EntranceGate “

Page 10: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Auflösung

public class OpenEntraceGateCommand extends Command

{

private EntraceGate gate;

public OpenEntraceGateCommand (EntraceGate

gate) {

this.gate = gate;

}

public void execute() {

gate.openGate();

}

}

Page 11: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Mehr Buttons, mehr Funktionen

Page 12: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Rückgängig Funktion…

Rückgängig Knopf

Page 13: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Gesamte Klassendiagramm

Page 14: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

• 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“

Page 15: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Weitere Anwendungsfälle

Page 16: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Weitere Anwendungsfälle

Page 17: Das Command Muster Deimbacher, Gölles. Fakten Verhaltensmuster GoF – Muster Auslösender und Ausführender sind entkoppelt

Vielen Dank für eure Aufmerksamkeit

Deimbacher, Gölles