public abstract void HandlePower(Flashlight context);
 public virtual void HandleMode(Flashlight context)
 {
 }
 public override void HandleMode(Flashlight context)
 {
     context.SetState(FlashlightStates.SOLID);
 }
 public override void HandleMode(Flashlight context)
 {
     context.SetState(FlashlightStates.FLASHING);
 }
 public override void OnEnter(Flashlight context)
 {
     base.OnEnter(context);
     context.SetState(FlashlightStates.SOLID);
 }
 public virtual void OnExit(Flashlight context)
 {
 }
 public virtual void OnEnter(Flashlight context)
 {
 }