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();
        }