Post

Memento

In Design Patterns on marzo 25, 2010 by poyblog Messo il tag: , ,

Intento:

Senza violare l’incapsulamento, cattura lo stato interno di un oggetto e lo “esterna” così che l’oggetto può essere ripristinato al suo stato precedente.

Applicabilità:

Memento è da utilizzare nel caso in cui:

  • uno snapshot (istantanea) di un oggetto o di una parte di esso deve essere salvata al fine di poter ripristinare il suo stato in un momento successivo
  • una interfaccia diretta al fine di ottenere lo stato dell’oggetto potrebbe esporre il dettaglio implementativo dell’oggetto stesso e rompere l’incapsulamento.

Partecipanti:

  • Memento → Mantiene lo stato interno dell’oggetto Originator, inoltre protegge lo stesso oggetto da altri oggetti
  • Originator → crea l’oggetto Memento che contiene l’istantanea dello stato corrente di Originator, utilizza Memento per ripristinare un suo stato precedente
  • Caretaker → è responsabile della custodia di Memento, ma non ne gestisce o esamina il contenuto

Conseguenze:

  • Vengono preservati i limiti dell’incapsulamento, infatti Memento espone quelle informazioni che solo un oggetto Originator potrebbe gestire, ma che non potranno mai essere immagazzinate all’esterno dell’originator stesso
  • Originator stesso viene semplificato.
  • Sfruttare questo pattern può essere dispendioso in termini di risorse
  • Ci sono dei costi nascosti nella gestione dello stato degli oggetti

Una Risposta a “Memento”

  1. [...] Memento [...]

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Iscriviti

Get every new post delivered to your Inbox.