Memento
Architecture 🟡 MidDefinition
Capture et externalise l'etat interne d'un objet sans violer l'encapsulation, pour pouvoir le restaurer plus tard.
Analogie
La sauvegarde dans un jeu video : tu captures l'etat complet pour pouvoir y revenir si tu meurs.
Exemple de code
class Editor {
save() { return { content: this.content }; }
restore(memento) { this.content = memento.content; }
}
const history = [editor.save()];
Cas d'usage
Undo/redo dans un editeur, snapshots d'etat, point de restauration transactionnel.
Anti-pattern
Stocker trop de mementos en memoire sans strategie de nettoyage.