BEHAVIORAL

Memento

Catturare e esternalizzare lo stato interno di un oggetto senza violare l'incapsulamento, in modo che l'oggetto possa essere ripristinato a questo stato successivamente.

Il Problema

Quando serve salvare e ripristinare lo stato di un oggetto senza esporre i dettagli della sua implementazione.

La Soluzione

Creare oggetto Memento che memorizza snapshot dello stato. Originator crea e ripristina da Memento. Caretaker gestisce Memento.

Struttura

Memento memorizza stato. Originator crea Memento e ripristina stato. Caretaker è responsabile del Memento.

Partecipanti:
Memento - memorizza stato interno di Originator
Originator - crea Memento e usa Memento per ripristinare stato
Caretaker - è responsabile per salvaguardare Memento
Esempi di Codice

Memento per Game Save System

Sistema di salvataggio per videogioco con checkpoint.

JAVASCRIPT
Loading...
Esempi nel Mondo Reale
Undo/Redo in editors
Database transactions (savepoints)
Game save systems
Browser history
Version control systems
Quando Usarlo
Quando serve salvare e ripristinare stato di oggetto
Quando accesso diretto allo stato violerebbe incapsulamento
Quando serve implementare undo/redo
Quando serve creare snapshot dello stato
Quando NON Usarlo
Quando lo stato è molto grande (overhead di memoria)
Quando lo stato cambia raramente
Quando serializzazione semplice è sufficiente
Pattern Correlati