Interacción Vista-Controlador: Patrón Estrategia

El patrón Estrategia (Strategy) permite que un determinado contexto trabaje con una implementación u otra de un algoritmo sin conocer su implementación concreta.

Para entendernos, pondremos como ejemplo el caso en que utilizamos este patrón en cyberHotel. Muchos de los formularios de la aplicación tienen un botón de Guardar, que nos permite almacenar en base de datos lo que hemos tecleado en el formulario, pero en diversas ocasiones podemos insertar los datos por primera vez, o bien, podemos realizar una actualización de los datos, pues bien, tanto en una ocasión como en la otra el botón simplemente llama a un método que nombramos como save, ¿cómo sabe entonces cuándo guardar y cuándo actualizar? La respuesta es sencilla, simplemente, no lo sabe, lo que ocurre es que este método save funciona mediante el patrón estrategia.

En estrategia tenemos una jerarquía de clases que implementan la estrategia, un contexto que utiliza la estrategia, y un cliente que establece la estrategia al contexto, pues bien, la estrategia son clases del Controlador que derivan de la clase SaveStrategy, nuestro contexto es el formulario que tiene el botón de guardado, y el cliente es otro formulario que establece la estrategia al formulario de guardado en base a la operación que se decida hacer. Todo esto lo vemos más claro gráficamente:

estrategia2

 

Y la representación del patrón:

strategy

 

Escribe un comentario