Programování
Memento
Smyslem mementa je uchování nebo zajištění verzí objektu. Zajištění verzování objektů . Pracuje s 3 pojmama
  • Originator - původce verzi, objektu, který chceme verzovat
  • CareTaker - to co uchovává backupu při běhu programu
  • Memento - verze toho objektu
    
// Orignator
public class Article
{
    public string Title {get; set;}
    
    public string Content {get;set;}
}
    
Memento - Backup
    
// Memento
public class BackupArticle
{
    public string Title {get; set;}
    
    public string Content {get;set;}
}
    
Přidáme vytváření backup do Article a restore metodu
    
// Orignator
public class Article
{
    public string Title {get; set;}

    public string Content {get;set;}

    public BackupArticle GetBackUp()
    {
        return new BackupArticle()
        {
            Title = Title,
            Content = Content;
        }
    }

    public void Restore(BackupArticle backup)
    {
        this.Title = backup.Title;
        this.Content = backup.Content;
    }
}
    
Následně můžeme využít funkce backup a restore v kodu.
    
Article a = new Article() {Title = "Hello", Content = "World"}
BackupArticle backup = a.Backup(); // Caretaker

a.Title = "Foo";

a.Restore(backup); // Tímto obnovíme