Páginas

domingo, 8 de diciembre de 2013

Patrón Memento: Ejemplo: Marcador de Futbol

Patrón Memento

Ejemplo: Marcador de Futbol



El patrón de comportamiento Memento, un modelo para capturar (parte o todo) y externalizar el estado interno de un objeto para restaurarlo más tarde sin violar el encapsulamiento. Puede ser usado  en combinación con los Patrones Command e Iterator. 
El patrón Memento es aplicable cuando: 
  • Todo o parte del estado de un objeto debe ser guardado para ser restaurado más tarde. 
  • Cuando una interfaz directa para obtener el estado de un objeto exponga detalles de su  implementación


Participantes 
· Memento.
  • - Almacena el estado interno de un objeto Originator. El Memento puede almacenar mucho o parte del estado interno de Originator. 
  • - Tiene dos interfaces. Una para Caretaker, que le permite manipular el Memento  únicamente para pasarlo a otros objetos. La otra interfaz sirve para que Originator pueda almacenar/restaurar su estado interno, sólo Originator puede acceder a esta interfaz, al menos en teoría. 
 · Originator.
  • - Originator crea un objeto Memento conteniendo una fotografía de su estado interno. 
  • - Originator usa a Memento para restaurar su estado interno. 

· Caretaker
  • - Es responsable por mantener a salvo a Memento. 
  • - No opera o examina el contenido de Memento

 Patrones relacionados
· Command: Puede usar “Mementos” para guardar el estado de operaciones restaurables.
· Iterator: “Mementos” puede ser usado con Iterator para buscar colecciones para estados específicos.

Ejemplo: Marcador de Fútbol
Se trata de realizar un marcador de fútbol, donde deberá aparecer:
-Resultado del 1º tiempo
-Resultado del 2º tiempo
-Resultado Final
-Nombre de Jugadores y minuto de cuando marca gol según el equipo.
Además se podrá deshacer y rehacer la introducción de resultados y jugadores.

Clases en el Proyecto:

Clase State:
Esta clase se encargará de almacenar los datos que nos interese del estado.

Clase Memento:


Clase Caretaker:


Programa Principal:





Captura de pantalla del programa en ejecucion:

Enlace de descarga: enlace a box

Enlaces:
http://www.slideshare.net/An3s/patron-memento
http://migranitodejava.blogspot.com.es/2011/06/memento.html
http://www.freewebz.com/amanecer/personal/papers/paper.memento.pdf