public static void InvokeMemento() { GenericClass memento = new GenericClass("Class Generic", "First"); Console.WriteLine("Nome: " + memento.getName() + " Status: " + memento.getStatus() + " Version: " + memento.getVersion()); Backup backup = new Backup(); backup.addBackup(memento.Clone()); memento.setStatus("Second"); Console.WriteLine("Nome: " + memento.getName() + " Status: " + memento.getStatus() + " Version: " + memento.getVersion()); backup.addBackup(memento.Clone()); memento.setStatus("Terceiro"); Console.WriteLine("Nome: " + memento.getName() + " Status: " + memento.getStatus() + " Version: " + memento.getVersion()); backup.addBackup(memento.Clone()); if (backup.containsVersion(2)) { memento = backup.recoverVersion(2); } Console.WriteLine("Nome: " + memento.getName() + " Status: " + memento.getStatus() + " Version: " + memento.getVersion()); Console.ReadLine(); }