reportes

Páginas: 8 (1925 palabras) Publicado: 18 de septiembre de 2013
Patrón Memento
Hillary Caituiro Monge
Departamento de Ingeniería Eléctrica y de Computadoras
Universidad de Puerto Rico, Recinto Universitario de Mayagüez
Mayagüez, Puerto Rico 00681-9042
Noviembre del 2001
hillarycm@hotmail.com
Resumen
El patrón de comportamiento Memento, un modelo para capturar y externalizar el estado
interno de un objeto para restaurarlo más tarde sin violar elencapsulamiento. Puede ser usado
en combinación con los Patrones Command e Iterator.

1. Introducción
Un patrón describe un problema frecuente y su solución, además de dar una solución un
patrón debe nombrar, explicar y evaluar un diseño recurrente en sistemas OO. Los patrones
conducen a diseños más simples y fáciles de usar. Los patrones de comportamiento
caracterizan el modo en que interactúanlas clases u objetos. Para seleccionar y usar un
patrón debemos considerar el modo en que los patrones resuelven nuestro problema de
diseño.
Muchas veces se quiere “retornar hacia atrás” retomando el mismo estado de ese instante
al mismo tiempo, para lograrlo es necesario guardar el estado que se tenía en ese instante.
Algunas personas quisieran poder ir al pasado y retomar su vida desdealgún instante, en las
mismas condiciones que tenían entonces.
Para obtener el estado interno de un objeto, este tiene que hacerlo público, exponiendo su
estructura interna y haciendo visibles sus secretos, esto va en contra del principio del
encapsulamiento.
Para dar solución a este problema existe el patrón Memento. Memento un patrón de
comportamiento, que permite almacenar el estado internode un objeto preservando el
principio del encapsulamiento.
2. Clasificación
Patrón de comportamiento. Un patrón de comportamiento caracteriza el modo en que
interactúan las clases u objetos.
3. Intención
Memento guarda parte o todo el estado interno de un objeto, para que este objeto pueda ser
restaurado más tarde al estado guardado por Memento. Esta operación debe ocurrir sin
romper elprincipio del encapsulamiento. [1 ]
4. Motivación
Muchas veces es necesario guardar el estado interno de un objeto. Esto debido a que tiempo
después, se necesita restaurar el estado del objeto, al que previamente se ha guardado.

Consideremos por ejemplo una aplicación de composición de figuras geométricas, donde
el usuario hace sucesivas modificaciones a una composición, graficando nuevaslíneas,
círculos y rectángulos. Después de cierto tiempo, el usuario logra una composición “casi
perfecta”, pero decide alcanzar la perfección, así que pinta una línea y esta no le sale como él
esperaba. Definitivamente el usuario quisiera regresar al instante en que su “creación” era
una obra de arte. Para dar solución a este problema, antes de que el usuario agregue una
nueva figura geométricaa la composición, se debería guardar el estado de la composición y
entonces siempre se tendría la posibilidad de regresar hacia atrás y restaurar la composición a
su estado anterior.
Para lograr esto, sería necesario guardar la lista de figuras geométricas y el orden en que
se encuentran en la composición, con información específica de cada una de ellas. En el caso
de un círculo tendríamosque guardar la posición (x, y), el radio, color y relleno, para un
rectángulo la posición (x, y), el ancho, el largo, color y relleno. Para lograr esto tenemos tres
alternativas: la primera alternativa consiste en obtener la lista de figuras de la composición y
obtener su estado, esto sería muy complejo y además va en contra del principio de
encapsulamiento; la segunda alternativa, es que lacomposición se encargue de ir guardando
su estado interno cada vez, esta no es una buena alternativa, la clase sería muy compleja y
estaría asumiendo responsabilidades que no le corresponden; la tercera alternativa es la
mejor, composición (Originator) crea un objeto (Memento) y almacena su estado nterno en
i
él, la aplicación (Caretaker) mantiene una lista de los objetos (Memento), de tal...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Reporte
  • Reporte
  • Reporte
  • Reportes
  • Report
  • Reporte
  • Reporte
  • Reporte

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS