Está en la página 1de 2

Patrones de diseo.

Memento
Es un patrn de diseo, cuya finalidad es almacenar el estado de un objeto (o
del sistema completo) en un momento dado de manera que se pueda restaurar
en ese punto de manera sencilla. 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 encapsulacin), de forma que
ese recuerdo permita que el objeto sea modificado y pueda volver a su estado
anterior.
Donde Usar
Se usa este patrn cuando se quiere poder restaurar el sistema desde estados
pasados. Es usado cuando se desea facilitar el hacer y deshacer de
determinadas operaciones.

Modelado del diagrama del patrn de diseo

Ejemplo en java del uso del patrn de diseo.


package Memento;
public class Main
{
public static void main(String[] args)
{
// Crear el objeto originador/creador
Originator creador = new Originator("Pedro", "Gil Mena");
// Crear el objeto gestor/vigilante del Memento
Caretaker vigilante= new Caretaker();
// Crear el Memento y asociarlo al objeto gestor
vigilante.setMemento( creador.createMemento() );
// Mostrar los datos del objeto
System.out.println("Nombre completo: [" + creador.getNombre() + " " +
creador.getApellidos() + "]" );
// Modificar los datos del objeto
creador.setNombre("Mara");
creador.setApellidos("Mora Mir");
// Mostrar los datos del objeto
System.out.println("Nombre completo: [" + creador.getNombre() + " " +
creador.getApellidos() + "]" );
// Restaurar los datos del objeto
creador.setMemento( vigilante.getMemento() );
// Mostrar los datos del objeto
System.out.println("Nombre completo: [" + creador.getNombre() + " " +
creador.getApellidos() + "]" );
}
}