Nombre del patrón
Strategy
Clasificación del patrón
De comportamiento.
Intención
Estructurar una familia de algoritmos de modo que sus clientes puedan intercambiarlos en tiempo de ejecución
También conocido como
Policy
Aplicabilidad
Usar este patrón cuando:
Strategy
Clasificación del patrón
De comportamiento.
Intención
Estructurar una familia de algoritmos de modo que sus clientes puedan intercambiarlos en tiempo de ejecución
También conocido como
Policy
Aplicabilidad
Usar este patrón cuando:
- Muchas clases relacionadas difieren sólo en su comportamiento.
- Se necesitan distintas variantes del mismo algoritmo.
- Una clase define muchos comportamientos.
Estructura
El uso del patrón Strategy tiene las siguientes ventajas y desventajas:
- Factoriza aspectos comunes de una familia de algoritmos y utilizarlos en las clases base de la jerarquía.
- Aumenta cohesión del cliente.
- Sistematiza el uso de implementaciones alternativas.
- El cliente es el responsable de crear estrategias, por tanto debe comprender las posibilidades que ofrecen, esto es, debe ser relevante para el contexto del cliente.
- Menor eficiencia. Aumenta el número de objetos creados.
Implementación
- Conviene analizar si es posible encapsular comportamiento común a todas las estrategias en una superclase.
- El cliente puede pasar la información necesaria al algoritmo o bien pasarse asimismo.
- El cliente puede evitar la creación innecesaria de objetos cuando la estrategia solicitada es idéntica a la última
Patrones relacionados
TemplateMethod. Una intención similar pero haciendo uso de la herencia en lugar de delegación
Referencias Bibliográficas
Design Patterns Elements of Reusable Object-Oriented Software, GoF.
http://www.lsi.us.es/docencia/get.php?id=1378
No hay comentarios:
Publicar un comentario