static void Main(string[] args) { //TODO: переделать с лямбда выражениями Invoker invoker = new Invoker(); invoker.AddCommand(new SecondSomeClassCommand(new SecondSomeClass(), "commandOne")); invoker.AddCommand(new FirstSomeClassCommand(new FirstSomeClass(), "commandTwo")); invoker.DoWork(); Console.WriteLine("Press Ctrl + Z"); invoker.CtrlZ(); invoker.DoWork(); Console.WriteLine("Many command"); List <ICommand> commands = new List <ICommand> { new FirstSomeClassCommand(new FirstSomeClass(), "commandThree"), new SecondSomeClassCommand(new SecondSomeClass(), "commandFour"), new FirstSomeClassCommand(new FirstSomeClass(), "commandFive") }; invoker.AddCommand(new ManyCommand(commands)); invoker.DoWork(); Console.WriteLine("Press Ctrl + Z"); invoker.CtrlZ(); invoker.DoWork(); Console.WriteLine("Press Ctrl + Z"); invoker.CtrlZ(); invoker.DoWork(); Console.ReadKey(); }
static void Main(string[] args) { Invoker invoker = new Invoker(); LightReceiver light = new LightReceiver(); invoker.AddCommand(new RedColorCommand(light)); invoker.AddCommand(new SwitchCommand(light)); invoker.AddCommand(new SwitchCommand(light)); invoker.AddCommand(new YellowColorCommand(light)); invoker.AddCommand(new SwitchCommand(light)); invoker.AddCommand(new SwitchCommand(light)); invoker.ExecuteCommands(); Console.ReadLine(); }