Memento

9
Patrón de comportamiento Memento (Recuerdo)

description

 

Transcript of Memento

Page 1: Memento

Patrón de comportamientoMemento (Recuerdo)

Page 2: Memento

Definición• Este patrón tiene como finalidad 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 encapsulación), de forma que ese recuerdo permita que el objeto sea modificado y pueda volver a su estado anterior.

Page 3: Memento

Diagrama UML

Page 4: Memento

Clases y objetos que participan en este patrón:

• Memento▫ Almacena el estado interno del objeto Originador. ▫ Impide el acceso a objetos que no sean el Originador.

• Originador▫ Crea un “momento” que contiene un instante de su estado interno actual.▫ Utiliza el “momento” para restaurar el estado interno.

• Vigilante▫ Es el responsable de custodiar el “momento”.▫ Nunca opera o examina el contenido del “momento”.

Page 5: Memento

Ejemplo en JavaEl siguiente programa ilustra el uso de "undo" con el patrón Memento. Intervienen tres clases: la clase Originator (Originador) es una clase que cambia de estado; la clase Caretaker (Portero) se encarga de registrar los cambios del Originador; Memento (Recuerdo) guarda el objeto a salvaguardar.

La salida es:

Page 6: Memento
Page 7: Memento
Page 8: Memento
Page 9: Memento

Fuentes

http://www.dofactory.com/Patterns/Patterns.aspx