PATRON STATE Y MEMENTO

Motivación:
Para aquellas clases que, según su estado actual varía su comportamiento ante los diferentes mensajes, cuando se quiere  que un objeto cambie su comportamiento, según cambia su estado, se presenta el problema de la complejidad de código. un objeto de esta clase tendrá diferentes respuestas según su estado.
Estructura:
Participantes:
  • Contexto (Context):
Este integrante define la interfaz con el cliente. Mantiene una instancia de ConcreteState (Estado Concreto) que define su estado actual.
  • Estado (State):
Define una interfaz para el encapsulamiento de la responsabilidades asociadas con un estado particular de Context.
  • Subclases de EstadoConcreto (ConcreteState):
Cada una de estas subclases implementa el comportamiento o responsabilidad de Context.
El Contexto (Context) delega el estado específico al objeto ConcreteState actual Un objeto Context puede pasarse a sí mismo como parámetro hacia un objeto State. De esta manera la clase State puede acceder al contexto si fuese necesario. Context es la interfaz principal para el cliente. El cliente puede configurar un contexto con los objetos State. Una vez hecho esto, los clientes no tendrán que tratar con los objetos State directamente. Tanto el objeto Context como los objetos de ConcreteState pueden decidir el cambio de estado.
Refrencias:
PATRON  MEMENTO
Motivación:
Se usa este patrón cuando se quiere poder restaurar el sistema desde estados pasados y por otra parte, es usado cuando se desea facilitar el hacer y deshacer de determinadas operaciones, para lo que habrá que guardar los estados anteriores de los objetos sobre los que se opere.
Estructura:
Participantes:
  • Memento.
- Almacena el estado interno de un objeto Originator.   El Memento puede almacenarmucho 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.
Referencias:

No hay comentarios:

Publicar un comentario