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