Este patrón de diseño permite capturar y exportar el estado interno de un objeto para que luego se pueda restaurar, sin romper la encapsulación. Su finalidad es almacenar el estado de un objeto (o del sistema completo) en un momento dado, de manera que se pueda restaurar posteriormente si fuese necesario. Para ello se mantiene almacenado el estado del objeto para un instante de tiempo en una clase independiente de aquella a la que pertenece el objeto (pero sin romper la encapsulación), de forma que ese recuerdo permita que el objeto sea modificado y pueda volver a su estado anterior.
Se usa cuando:
Dato
Este patrón debe ser utilizado cuando se necesite salvar el estado de un objeto y tener disponible los distintos estados históricos que se necesiten. Por ello mismo, este patrón es muy intuitivo para darse cuando debe ser utilizado.
Diagrama UML
Caretaker: es responsable por mantener a salvo a Memento. No opera o examina su contenido.
Memento: almacena el estado interno de un objeto Originator. El Memento puede almacenar todo o parte del estado.
Originator: crea un objeto Memento conteniendo una fotografía de su estado interno.
* Propósito El objetivo principal de Memento es guardar el estado de un objeto sin romper el encapsulamiento del mismo.
Datos A Tener En Cuenta Del
*Se usa este patrón cuando se quiere poder restaurar el sistema desde estados pasados
*Es usado cuando se desea facilitar el hacer y deshacer de determinadas operaciones,