module command.remoteundostatus.app; import command.remoteundostatus.remotecontrol; import command.remoteundostatus.lightoncommand; import command.remoteundostatus.lightoffcommand; import command.remoteundostatus.light; import command.remoteundostatus.ceilingfan; import command.remoteundostatus.ceilingfanoffcommand; import command.remoteundostatus.ceilingfanhighcommand; import command.remoteundostatus.ceilingfanmediumcommand; import command.remoteundostatus.ceilingfanlowcommand; import command.remoteundostatus.garagedoorupcommand; import command.remoteundostatus.garagedoordowncommand; import command.remoteundostatus.garagedoor; import command.remoteundostatus.stereoonwithcdcommand; import command.remoteundostatus.stereo; import command.remoteundostatus.stereooffcommand; import std.stdio : writeln; void main() { auto remoteControl = new RemoteControl(); auto ceilingFan = new CeilingFan("Living Room"); remoteControl.setCommand(0, new CeilingFanMediumCommand(ceilingFan), new CeilingFanOffCommand(ceilingFan)); remoteControl.setCommand(1, new CeilingFanHighCommand(ceilingFan), new CeilingFanOffCommand(ceilingFan)); remoteControl.onButtonWasPushed(0); remoteControl.offButtonWasPushed(0); writeln(remoteControl); remoteControl.undoButtonWasPushed(); remoteControl.onButtonWasPushed(1); writeln(remoteControl); remoteControl.undoButtonWasPushed(); }