jueves, 28 de mayo de 2009

Strategy

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:
  • Muchas clases relacionadas difieren sólo en su comportamiento.

  • Se necesitan distintas variantes del mismo algoritmo.

  • Una clase define muchos comportamientos.

Estructura

Consecuencias
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