public static void Execute() { var garden = new Garden(5); var command1 = new PlantCommand(garden, "drzewo"); var command2 = new RemoveCommand(garden, "drzewo"); var command3 = new RemoveCommand(garden, "słonecznik"); var command4 = new PlantCommand(garden, "słonecznik"); var plantTreeButton = new CommandsInvoker(command1); var removeTreeButton = new CommandsInvoker(command2); var removeSunflowerButton = new CommandsInvoker(command3); var plantSunflowerButton = new CommandsInvoker(command4); Console.WriteLine(garden); plantTreeButton.Invoke(); plantSunflowerButton.Invoke(); plantSunflowerButton.Invoke(); plantTreeButton.Invoke(); plantTreeButton.Invoke(); plantTreeButton.Invoke(); plantTreeButton.Invoke(); plantTreeButton.Invoke(); Console.WriteLine(garden); CommandsInvoker.Undo(); CommandsInvoker.Undo(); CommandsInvoker.Undo(); CommandsInvoker.Undo(); Console.WriteLine(garden); removeTreeButton.Invoke(); removeSunflowerButton.Invoke(); Console.WriteLine(garden); CommandsInvoker.Undo(); CommandsInvoker.Undo(); Console.WriteLine(garden); }
public PlantCommand(Garden garden, string plant) { _garden = garden; _plant = plant; }
public RemoveCommand(Garden garden, string plant) { _garden = garden; _plant = plant; }