Example #1
0
        public static void UseCommandPattern(IView view)
        {
            RemoteControl remote = new RemoteControl(view);

            Light livingRoomLight = new Light(view, "Living Room");
            Light kitchenLight    = new Light(view, "Kitchen");

            //CeilingFan ceilingFan = new CeilingFan(view, "Kitchen");

            Garage garage = new Garage(view);
            Stereo stereo = new Stereo(view);

            ICommand livigRommLightOn  = new LightOnCommand(livingRoomLight);
            ICommand livigRommLightOff = new LightsOffCommand(livingRoomLight);
            ICommand KitchenLightOn    = new LightOnCommand(kitchenLight);
            ICommand KitchenightOff    = new LightsOffCommand(kitchenLight);

            ICommand garageDoorOpen  = new GarageOpenCommand(garage);
            ICommand garageDoorClose = new GarageCloseCommand(garage);

            ICommand stereoWithCd = new StereoWithCDCommand(stereo);
            ICommand stereoOff    = new StereoOffCommand(stereo);

            remote.SetCommand(0, livigRommLightOn, livigRommLightOff);
            remote.SetCommand(1, KitchenLightOn, KitchenightOff);
            remote.SetCommand(2, garageDoorOpen, garageDoorClose);
            remote.SetCommand(3, stereoWithCd, stereoOff);

            remote.DisplayButtons();

            remote.OnButtonWasPushed(0);
            remote.OffButtonWasPushed(0);
            remote.OnButtonWasPushed(1);
            remote.OffButtonWasPushed(1);
            remote.OnButtonWasPushed(2);
            remote.OffButtonWasPushed(2);
            remote.OnButtonWasPushed(3);
            remote.OffButtonWasPushed(3);
        }