public static void Main(string[] args) { //CreateMemento é usado para definir o estado interno do objeto. //SetMemento obterá e atribuirá esse estado interno ao originator. Originator originator = new Originator(); //Manter os objetos memento. Caretaker caretaker = new Caretaker(); originator.bike = new Bicicleta("Left", "Shimano", "Azul"); caretaker.AddMemento(originator.CreateMemento()); originator.bike = new Bicicleta("Manintou", "Shimano", "Azul"); caretaker.AddMemento(originator.CreateMemento()); originator.bike = new Bicicleta("RockShocks", "Sram", "Preta"); caretaker.AddMemento(originator.CreateMemento()); Console.WriteLine("\nConfiguração atual: " + originator.GetDetails()); Console.WriteLine("\nRestaurar a bike para estado original"); originator.bike = caretaker.GetMemento(0).bike; Console.WriteLine("\nConfiguração atual: " + originator.GetDetails()); Console.ReadKey(); }
public static void Run() { Originator originator = new Originator(); originator.ledTV = new LEDTV("42 inch", "60000Rs", false); Caretaker caretaker = new Caretaker(); caretaker.AddMemento(originator.CreateMemento()); originator.ledTV = new LEDTV("46 inch", "80000Rs", true); caretaker.AddMemento(originator.CreateMemento()); originator.ledTV = new LEDTV("50 inch", "100000Rs", true); Console.WriteLine("\nOrignator current state : " + originator.GetDetails()); Console.WriteLine("\nOriginator restoring to 42 inch LED TV"); originator.ledTV = caretaker.GetMemento(0).ledTV; Console.WriteLine("\nOrignator current state : " + originator.GetDetails()); Console.ReadKey(); }