Patrón Strategy¶
Problema a resolver¶
Problema
Dada una clase C con un método m, donde m presenta una alta variabilidad no acotada en un punto concreto de su implementación, cómo conseguir que la clase C pueda recibir nuevos cambios sin necesidad de modificarla.
Ventajas e Incovenientes¶
Receta para aplicar el patrón¶
- Identificar el bloque de código del método
mde la claseCdonde se presenta la àlta variabilidad.- Identificar las entradas y salidas de dicho bloque de código.
- Diseñar un método
xque abstraiga dicho bloque de código.- Crear una clase abstracta
Strategyque contenga dicho métodox.- Añadir una referencia de la clase
Ca la claseStrategy.- Reemplazar el bloque de código del método
mcon alta variabilidad por una llamada al métodoxde la claseStrategy.- Implementar tantas subclases de la clase
Strategycomo variantes existían en el bloque de código con alta variabilidad.
Detalles a considerar¶
- ¿Cuántos parámetros debe recibir el método que calcula la estrategia?
- ¿Quién y cómo configura las estrategias?