Patrón Memento

Lectura de ~3 minutos

Sin romper la encapsulación. captura y externaliza el estado interno de un objeto para que pueda ser restaurado más tarde.

Aplicabilidad

  • Se debe guardar una captura, o parte, de un objeto para ser restaurado más tarde

Y

  • La encapsulación del bojeto se rompe mediante una interfaz que expone el estado y detalles de implementación.

Estructura

Memento Diagram

Se define una clase que almacena los estados a los que se desa volver. La clase que desea guardar su estado debe tener una interfaz que permita recibir un objeto de tipo memento para reestablecerlo.

Consecuencias

  • Preserva los límites de la encapsulación. No expone información que solamente la clase origen debería conocer.

  • Simplifica la clase origen evitando que tenga que versionar su estado interno.

  • Puede ser costoso si hay muchas operaciones restauración de estado o si el estado es grande.

  • Puede derivar en grandes definiciones de interfaces en algunos lenguajes para asegurar que solo los objeto de origen pueden acceder a los estados de memento.

  • Costes ocultos al almecenar mementos, ya que se desconoce su estado.

Aquí un pequeño ejemplo en Net core.

Nos vemos en las próximas líneas.

Escrito el 04/01/2019