static void MainOLD()
        {
            var bulb = new Bulb();

            var turnOn  = new TurnOn(bulb);
            var turnOff = new TurnOff(bulb);

            var remote = new RemoteControl();

            remote.Submit(turnOn);
            remote.Submit(turnOff);

            Console.ReadKey();
        }
 public TurnOff(Bulb bulb)
 {
     this.mBulb = bulb ?? throw new ArgumentNullException("bulb", "Bulb cannot be null");
 }
 public TurnOn(Bulb bulb)        // Constructor
 {
     this.mBulb = bulb ?? throw new ArgumentNullException("bulb", "Bulb cannot be null");
 }