Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
public interface Command { public void execute(); } public class LightOnCommnand implements Command { Light light; public LightOnCommand (Light umLight) { This.light = umLight; } public void execute () { light.on(); } } public class GarageDoorOpenCommand implements Command { GarageDoor garageDoor; public GarageDoorOpenCommand (GarageDoor umGarageDoor) { This. garageDoor = umGarageDoor; } public void execute () { garageDoor.open(); } } Public class SimpleRemoteControl Command slot; Public SimpleRemoteControl() {} Public void set command(Command command) { slot = command; } Public void buttonWasPressed() { Slot.execute(); } } Public class RemoteControlTest { Public static void main(String[] args) { SimpleRemoteControl remote = new SimpleRemoteControl(); Light light = new Light(); LightOnCommand lightOnCommand = new LightOnCommand (light); GarageDoor garageDoor = new GarageDoor(); GarageDoorOpenCommand = new GarageDoorOpenCommand (garageDoor); Remote.setCommand(lightOnCommand); Remote.buttonWasPressed(); Remote.setCommand(garageDoorOpenCommand); Remote.buttonWasPressed(); Exercicio: implementar os controles do portao de garage para fechar e parar.