Exemplo n.º 1
0
        static void Main(string[] args)
        {
            SimpleRemoteControl remote = new SimpleRemoteControl();
            Light          light       = new Light();
            LightOnCommand lightOn     = new LightOnCommand(light);

            remote.SetCommand(lightOn);
            remote.ButtonWasPressd();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            SimpleRemoteControl remote = new SimpleRemoteControl();
            Light          light       = new Light();
            LightOnCommand lightOnCmd  = new LightOnCommand(light);

            remote.setCommand(lightOnCmd);
            remote.buttonWasPressed();
            Console.ReadLine();
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            Light           light           = new Light();
            LightOnCommand  lightOnCommand  = new LightOnCommand(light);
            LightOffCommand lightOffCommand = new LightOffCommand(light);

            SimpleRemoteControl simpleRemoteControl = new SimpleRemoteControl();

            simpleRemoteControl.SetCommand(lightOnCommand);
            simpleRemoteControl.ButtonPress();
            simpleRemoteControl.ButtonUp();
        }
Exemplo n.º 4
0
        public static void Run()
        {
            SimpleRemoteControl remote       = new SimpleRemoteControl();
            Light                 light      = new Light();
            LightOnCommand        lightOn    = new LightOnCommand(light);
            GarageDoor            door       = new GarageDoor();
            GarageDoorOpenCommand garageOpen = new GarageDoorOpenCommand(door);

            remote.SetCommand(lightOn);
            remote.ButtonWasPressed();
            remote.SetCommand(garageOpen);
            remote.ButtonWasPressed();
        }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            Light   ronnysRoomLight     = new Light();
            Command turnOnLightCommand  = new LightOnCommand(ronnysRoomLight);
            Command turnOffLightCommand = new LightOffCommand(ronnysRoomLight);

            SimpleRemoteControl remoteControl = new SimpleRemoteControl();

            remoteControl.SetCommand(turnOnLightCommand);
            remoteControl.PressButton();

            remoteControl.SetCommand(turnOffLightCommand);
            remoteControl.PressButton();
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var remote = new SimpleRemoteControl();

            var kitchenLight = new Light("kitchen light");
            var livingLight  = new Light("living room light");
            var garageDoor   = new GarageDoor();
            var stereo       = new Stereo();

            var kitLightOnCommand  = new LightOnCommand(kitchenLight);
            var kitLightOffCommand = new LightOffCommand(kitchenLight);

            var lightOnCommand  = new LightOnCommand(livingLight);
            var lightOffCommand = new LightOffCommand(livingLight);

            var garageDoorOpenCommand  = new GarageDoorOpenCommand(garageDoor);
            var garageDoorCloseCommand = new GarageDoorCloseCommand(garageDoor);

            var stereoOnWithCDCommand = new StereoOnWithCDCommand(stereo);
            var stereoOffCommand      = new StereoOffCommand(stereo);

            var ceilingFan            = new CeilingFan("Ceiling fan");
            var ceilingFanHighCommand = new CeilingFanHighCommand(ceilingFan);
            var ceilingFanLowCommand  = new CeilingFanLowCommand(ceilingFan);
            var ceilingFanOffCommand  = new CeilingFanOffCommand(ceilingFan);

            remote.SetCommand(0, lightOnCommand, lightOffCommand);
            remote.SetCommand(1, kitLightOnCommand, kitLightOffCommand);
            remote.SetCommand(2, garageDoorOpenCommand, garageDoorCloseCommand);
            remote.SetCommand(3, stereoOnWithCDCommand, stereoOffCommand);
            remote.SetCommand(4, ceilingFanHighCommand, ceilingFanOffCommand);
            remote.SetCommand(5, ceilingFanLowCommand, ceilingFanOffCommand);

            remote.OnButtonPressed(0);
            remote.OffButtonPressed(0);
            remote.OnButtonPressed(1);
            remote.OffButtonPressed(1);
            remote.OnButtonPressed(2);
            remote.OffButtonPressed(2);
            remote.OnButtonPressed(3);
            remote.OffButtonPressed(3);
            remote.OnButtonPressed(4);
            remote.OffButtonPressed(4);
            remote.UndoButtonPressed();
            remote.OnButtonPressed(5);
            remote.OffButtonPressed(5);
            remote.UndoButtonPressed();
        }
Exemplo n.º 7
0
        static void Main(string[] args)
        {
            SimpleRemoteControl remote = new SimpleRemoteControl();

            Light      livingRoomLight  = new Light("Living Romm");
            Light      kitchenRoomLight = new Light("kitchen Romm");
            GarageDoor garageDoor       = new GarageDoor("");
            CeilingFan ceilingFan       = new CeilingFan("Living Room");
            Stereo     stereo           = new Stereo("Living Room");

            LightOnCommand  livingRoomLightOn  = new LightOnCommand(livingRoomLight);
            LightOffCommand livingRoomLightOff = new LightOffCommand(livingRoomLight);

            LightOnCommand  kitchenRoomLightOn  = new LightOnCommand(kitchenRoomLight);
            LightOffCommand kitchenRoomLightOff = new LightOffCommand(kitchenRoomLight);

            CeilingFanHighCommand ceilingFanOn  = new CeilingFanHighCommand(ceilingFan);
            CeilingFanOffCommand  ceilingFanOff = new CeilingFanOffCommand(ceilingFan);

            GarageDoorOpenCommand  garageDoorOpenCommand  = new GarageDoorOpenCommand(garageDoor);
            GarageDoorCloseCommand garageDoorCloseCommand = new GarageDoorCloseCommand(garageDoor);

            StereoOnWithCDCommand stereoOnWithCdCommand = new StereoOnWithCDCommand(stereo);
            StereoOffCommand      stereoOffCommand      = new StereoOffCommand(stereo);

            remote.SetCommand(0, livingRoomLightOn, livingRoomLightOff);
            remote.SetCommand(1, kitchenRoomLightOn, kitchenRoomLightOff);
            remote.SetCommand(2, ceilingFanOn, ceilingFanOff);
            remote.SetCommand(3, stereoOnWithCdCommand, stereoOffCommand);

            Console.WriteLine(remote.ToString());

            remote.OnButtonWasPressed(0);
            remote.OffButtonWasPressed(0);

            remote.OnButtonWasPressed(1);
            remote.OffButtonWasPressed(1);

            remote.OnButtonWasPressed(2);
            remote.OffButtonWasPressed(2);

            remote.OnButtonWasPressed(3);
            remote.OffButtonWasPressed(3);


            Console.ReadLine();
        }
Exemplo n.º 8
0
        static void Main(string[] args)
        {
            SimpleRemoteControl remote = new SimpleRemoteControl();
            Light    light             = new Light();
            LightOn  lightOn           = new LightOn(light);
            LightOff lightOff          = new LightOff(light);

            remote.SetCommand(0, lightOn, lightOff);
            remote.OnButtonWasPressed(0);
            remote.OffButtonWasPressed(0);

            GarageDoor      door      = new GarageDoor();
            GarageDoorOpen  doorOpen  = new GarageDoorOpen(door);
            GarageDoorClose doorClose = new GarageDoorClose(door);

            remote.SetCommand(1, doorOpen, doorClose);
            remote.OnButtonWasPressed(1);
            remote.OffButtonWasPressed(1);
        }
Exemplo n.º 9
0
        static void Main(string[] args)
        {
            SimpleRemoteControl remote = new SimpleRemoteControl();
            Light light = new Light();
            LightOn lightOn = new LightOn(light);
            LightOff lightOff = new LightOff(light);

            remote.SetCommand(0, lightOn, lightOff);
            remote.OnButtonWasPressed(0);
            remote.OffButtonWasPressed(0);

            GarageDoor door = new GarageDoor();
            GarageDoorOpen doorOpen = new GarageDoorOpen(door);
            GarageDoorClose doorClose = new GarageDoorClose(door);

            remote.SetCommand(1, doorOpen, doorClose);
            remote.OnButtonWasPressed(1);
            remote.OffButtonWasPressed(1);
        }
Exemplo n.º 10
0
        public void ExecuteSimple()
        {
            SimpleRemoteControl remoteControl = new SimpleRemoteControl();

            Light light = new Light();

            LightOnCommand lightOn = new LightOnCommand(light);

            remoteControl.Slot = lightOn;

            remoteControl.PressButton();

            GarageDoor garageDoor = new GarageDoor();

            GarageDoorOpenCommand garageDoorOpen = new GarageDoorOpenCommand(garageDoor);

            remoteControl.Slot = garageDoorOpen;

            remoteControl.PressButton();
        }
Exemplo n.º 11
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            SimpleRemoteControl remote = new SimpleRemoteControl();
            Light           light      = new Light("Bathroom");
            Light           light2     = new Light("Kitchen");
            LightOnCommand  lightOn    = new LightOnCommand(light);
            LightOnCommand  lightOn2   = new LightOnCommand(light2);
            LightOffCommand lightOff   = new LightOffCommand(light);
            LightOffCommand lightOff2  = new LightOffCommand(light2);

            remote.setCommand(lightOn, lightOff);
            remote.onButtonWasPressed();
            remote.setCommand(lightOn2, lightOff2);
            remote.onButtonWasPressed();
            //turn off
            remote.offButtonWasPressed();
            remote.setCommand(lightOn, lightOff);
            remote.offButtonWasPressed();

            ComplexRemoteControl complexRemote = new ComplexRemoteControl();

            GarageDoor      door      = new GarageDoor();
            DoorUpCommand   openDoor  = new DoorUpCommand(door);
            DoorDownCommand closeDoor = new DoorDownCommand(door);
            DoorStopCommand stopDoor  = new DoorStopCommand(door);

            complexRemote.addCommand("Open", openDoor);
            complexRemote.addCommand("Close", closeDoor);
            complexRemote.addCommand("Stop", stopDoor);

            complexRemote.ButtonPress("Open");
            complexRemote.ButtonPress("Close");
            complexRemote.ButtonPress("Open");
            complexRemote.ButtonPress("Stop");
        }
Exemplo n.º 12
0
        static void Main()
        {
            SimpleRemoteControl remote = new SimpleRemoteControl();
            Light light = new Light();
            LightOnCommand lightOn = new LightOnCommand(light);
            LightOffCommand lightOff = new LightOffCommand(light);

            GarageDoor garageDoor = new GarageDoor();
            GarageDoorOpenCommand garageOpen = new GarageDoorOpenCommand(garageDoor);
            GarageDoorCloseCommand garageClose = new GarageDoorCloseCommand(garageDoor);

            remote.SetCommand(0, lightOn, lightOff);
            remote.OnButtonWasPressed(0);
            remote.OffButtonWasPressed(0);
            remote.UndoButtonWasPressed();

            remote.SetCommand(1, garageOpen, garageClose);
            remote.OnButtonWasPressed(1);
            remote.OffButtonWasPressed(1);

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            Light                 light          = new Light();
            GarageDoor            garageDoor     = new GarageDoor();
            LightOnCommand        lightOn        = new LightOnCommand(light);
            LightOffCommand       lightOff       = new LightOffCommand(light);
            GarageDoorOpenCommand garageDoorOpen = new GarageDoorOpenCommand(garageDoor);
            GarageDoorDownCommand garageDoorDown = new GarageDoorDownCommand(garageDoor);

            //01.简单控制器--------------------------
            Console.WriteLine("\n-----01.简单控制器-----\n");
            SimpleRemoteControl remote = new SimpleRemoteControl();

            remote.SetCommand(lightOn);
            remote.ButtonWasPressed();
            remote.SetCommand(garageDoorOpen);
            remote.ButtonWasPressed();

            //02.复杂控制器--------------------------------------
            Console.WriteLine("\n-----02.复杂控制器-----\n");
            RemoteControl remoteControl = new RemoteControl();

            remoteControl.SetCommand(0, lightOn, lightOff);
            remoteControl.SetCommand(1, garageDoorOpen, garageDoorDown);
            Console.WriteLine(remoteControl.ToString());
            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            remoteControl.OnButtonWasPushed(1);
            remoteControl.OffButtonWasPushed(1);

            //03.复杂控制器,撤销功能--------------------------------------
            Console.WriteLine("\n-----03.复杂控制器,撤销功能-----\n");
            RemoteControlWithUndo remoteControlWithUndo = new RemoteControlWithUndo();

            remoteControlWithUndo.SetCommand(0, lightOn, lightOff);
            remoteControlWithUndo.OnButtonWasPushed(0);
            remoteControlWithUndo.OffButtonWasPushed(0);
            Console.WriteLine(remoteControlWithUndo.ToString());
            remoteControlWithUndo.UndoButtonWasPushed();
            remoteControlWithUndo.OffButtonWasPushed(0);
            remoteControlWithUndo.OnButtonWasPushed(0);
            Console.WriteLine(remoteControlWithUndo.ToString());
            remoteControlWithUndo.UndoButtonWasPushed();

            //04.复杂撤销功能-天花板吊扇
            Console.WriteLine("\n-----04.复杂撤销功能-天花板吊扇-----\n");
            remoteControlWithUndo = new RemoteControlWithUndo();
            CeilingFan              ceilingFan              = new CeilingFan("Living Room");
            CeilingFanHighCommand   ceilingFanHighCommand   = new CeilingFanHighCommand(ceilingFan);
            CeilingFanMediumCommand ceilingFanMediumCommand = new CeilingFanMediumCommand(ceilingFan);
            CeilingFanOffCommand    ceilingFanOffCommand    = new CeilingFanOffCommand(ceilingFan);

            remoteControlWithUndo.SetCommand(0, ceilingFanHighCommand, ceilingFanOffCommand);   //0号插槽的On键设置为高速,Off键设置为关闭
            remoteControlWithUndo.SetCommand(1, ceilingFanMediumCommand, ceilingFanOffCommand); //1号插槽的On键设置为中速,Off键设置为关闭

            remoteControlWithUndo.OnButtonWasPushed(0);                                         //首先以高速开启吊扇
            remoteControlWithUndo.OffButtonWasPushed(0);                                        //然后关闭
            Console.WriteLine(remoteControlWithUndo.ToString());
            remoteControlWithUndo.UndoButtonWasPushed();                                        //撤销,回到中速

            remoteControlWithUndo.OnButtonWasPushed(1);                                         //开启中速
            remoteControlWithUndo.OffButtonWasPushed(1);                                        //关闭
            Console.WriteLine(remoteControlWithUndo.ToString());                                //撤销,回到中速
            remoteControlWithUndo.UndoButtonWasPushed();

            //05.Party模式
            Console.WriteLine("\n-----05.Party模式-----\n");
            ICommand[]   partyOn              = { lightOn, garageDoorOpen, ceilingFanHighCommand }; //一个数组用来记录开启命令
            ICommand[]   partyOff             = { lightOff, garageDoorDown, ceilingFanOffCommand }; //另一个数组用来记录关闭命令
            MacroCommand partyOnMacroCommand  = new MacroCommand(partyOn);                          //创建对应的宏持有开启命令数组
            MacroCommand partyOffMacroCommand = new MacroCommand(partyOff);                         //创建对应的宏持有关闭命令数组

            remoteControlWithUndo = new RemoteControlWithUndo();
            remoteControlWithUndo.SetCommand(0, partyOnMacroCommand, partyOffMacroCommand);//将宏命令指定一个按钮
            Console.WriteLine(remoteControlWithUndo);
            Console.WriteLine("----Pushing Macro On----");
            remoteControlWithUndo.OnButtonWasPushed(0);
            Console.WriteLine("----Pushing Macro Off----");
            remoteControlWithUndo.OffButtonWasPushed(0);
            Console.WriteLine("----Pushing Macro Undo----");
            remoteControlWithUndo.UndoButtonWasPushed();

            Console.ReadKey();
        }