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
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.