sábado, 16 de julio de 2016

Strategy Pattern

Propósito

 Definir una familia de algoritmos, encapsulándolos a cada uno y haciéndolos
intercambiables.

 Ofrecer la posibilidad de variar el algoritmo independientemente del cliente que lo utiliza.

 Capturar la abstracción en una interfaz, ocultando los detalles de la
implementación en clases derivadas.

 Implementar varios comportamientos por medio de composición.

Problema

Implementar una de las estrategias dominantes del diseño Orientado a Objetos:

Principio Open Closed.

Una forma rutinaria de intentar cumplir con el principio mencionado
anteriormente es mediante la creación de una clase base (o interfaz), ocultando los detalles de la implementación clases derivadas. Pero como desarrolladores no medimos el impacto que este tipo de soluciones implica: el incremento del número de clases derivadas o el cambio de la implementación de ellas.

Se usa cuando


 La única diferencia entre varias clases relacionadas es únicamente el
comportamiento.
 Se requiere de múltiples versiones o variaciones de un algoritmo.
 El comportamiento de una clase debe ser definido en tiempo de ejecución.

No hay comentarios:

Publicar un comentario