static void RemoteControlTestMacro() { RemoteControl remoteControl = new RemoteControl(); Light livingRoomLight = new Light("Living Room"); CeilingFan ceilingFan = new CeilingFan("Living Room"); Stereo stereo = new Stereo("Living Room"); LightOnCommand livingRoomLightOn = new LightOnCommand(livingRoomLight); LightOffCommand livingRoomLightOff = new LightOffCommand(livingRoomLight); CeilingFanHighCommand ceilingFanOn = new CeilingFanHighCommand(ceilingFan); CeilingFanOffCommand ceilingFanOff = new CeilingFanOffCommand(ceilingFan); StereoOnWithCdCommand stereoOnWithCd = new StereoOnWithCdCommand(stereo); StereoOffCommand stereoOff = new StereoOffCommand(stereo); ICommand[] partyOn = { livingRoomLightOn, ceilingFanOn, stereoOnWithCd }; ICommand[] partyOff = { livingRoomLightOff, ceilingFanOff, stereoOff }; MacroCommand partyOnMacro = new MacroCommand(partyOn); MacroCommand partyOffMacro = new MacroCommand(partyOff); remoteControl.SetCommand(0, partyOnMacro, partyOffMacro); Console.WriteLine(remoteControl); remoteControl.OnButtonWasPushed(0); remoteControl.UndoButtonWasPushed(); Console.WriteLine(remoteControl); remoteControl.OnButtonWasPushed(0); remoteControl.OffButtonWasPushed(0); Console.WriteLine(remoteControl); }
static void Main(string[] args) { var remoteControl = new Controllers.RemoteControl(); var livingRoonLight = new Light("Living Room"); var television = new Television("Living Room"); var stereo = new Stereo("Living Room"); var hotTub = new HotTub(); var lightOn = new LightOnCommand(livingRoonLight); var lightOff = new LightOffCommand(livingRoonLight); var televisionOn = new TelevisionOnCommand(television); var televisionOff = new TelevisionOffCommand(television); var stereoOn = new StereoOnCommand(stereo); var stereoOff = new StereoOffCommand(stereo); var hotTubOn = new HotTubOnCommand(hotTub); var hotTubOff = new HotTubOffCommand(hotTub); var partyOn = new ICommand[] { lightOn, stereoOn, televisionOn, hotTubOn }; var partyOff = new ICommand[] { lightOff, stereoOff, televisionOff, hotTubOff }; var partyMacroOn = new MacroCommand(partyOn); var partyMacroOff = new MacroCommand(partyOff); remoteControl.SetCommand(0, partyMacroOn, partyMacroOff); Console.WriteLine(remoteControl); Console.WriteLine("----------Push Macro On----------"); remoteControl.OnButtonWasPressed(0); Console.WriteLine("----------Push Macro Off---------"); remoteControl.OffButtonWasPressed(0); Console.ReadLine(); }
static void Main(string[] args) { SimpleRemoteControl control = new SimpleRemoteControl(); // Объекты Garage garage = new Garage(); Stereo stereo = new Stereo(); CeilingFan ceilingFan = new CeilingFan("BedRoom"); // Команды над объектами GarageDoorOpenCommand garageDoorOpen = new GarageDoorOpenCommand(garage); GarageDoorCloseCommand garageDoorClose = new GarageDoorCloseCommand(garage); CeilingFanHighCommand ceilingFanHigh = new CeilingFanHighCommand(ceilingFan); CeilingFanMediumCommand ceilingFanMedium = new CeilingFanMediumCommand(ceilingFan); CeilingFanOffCommand ceilingFanOff = new CeilingFanOffCommand(ceilingFan); StereoOnWithCDCommand stereoOnWithCD = new StereoOnWithCDCommand(stereo); StereoOffCommand stereoOff = new StereoOffCommand(stereo); // Запоминаем кнопки на пульте control.SetCommands(0, garageDoorOpen, garageDoorClose); control.SetCommands(1, stereoOnWithCD, stereoOff); control.SetCommands(2, ceilingFanMedium, ceilingFanOff); control.SetCommands(3, ceilingFanHigh, ceilingFanOff); control.OnButtonWasPressed(0); Thread.Sleep(1000); control.OnButtonWasPressed(1); Console.WriteLine("Играет музыка"); Thread.Sleep(2500); control.undoButtonWasPushed(); Thread.Sleep(1000); control.OffButtonWasPressed(0); Thread.Sleep(1000); control.OnButtonWasPressed(2); Thread.Sleep(1000); control.OffButtonWasPressed(2); Thread.Sleep(1000); control.undoButtonWasPushed(); Thread.Sleep(1000); control.OnButtonWasPressed(3); Thread.Sleep(1000); control.OffButtonWasPressed(3); Thread.Sleep(1000); Console.WriteLine("---Часть 3---"); Light light = new Light(); LightOnCommand lightOn = new LightOnCommand(light); LightOffCommand lightOff = new LightOffCommand(light); ICommand[] _partyOn = { garageDoorOpen, lightOn, stereoOnWithCD }; ICommand[] _partyOff = { garageDoorClose, lightOff, stereoOff }; MacroCommand macroCommandOn = new MacroCommand(_partyOn); MacroCommand macroCommandOff = new MacroCommand(_partyOff); control.SetCommands(4, macroCommandOn, macroCommandOff); control.OnButtonWasPressed(4); Console.WriteLine("Вырубание"); control.OffButtonWasPressed(4); }