Vous êtes sur la page 1sur 11

Estrategia

Nombre: Estrategia(Strategy)
Tipo: Comportamiento
Nivel: Componente
Propsito: Definir un grupo de clases que
representan un conjunto de posibles
comportamientos. Estos comportamientos
pueden ser fcilmente intercambiados en una
aplicacin, modificando la funcionalidad en
cualquier instante.

Estrategia
Descripcin:
El patrn estrategia maneja conjuntos de
algoritmos bsicos, como algoritmo de
bsqueda y ordenacin. Tambin pueden
utilizar esta tcnica de una forma efectiva con
consultas a base de datos, definiendo diferentes
aproximaciones para ejecutar las consultas.

Estrategia
Aplicabilidad:
Utilice el patrn Estrategia cuando:
Tenga distintas formas de ejecutar una accin.
No sepa que aproximacin utilizar hasta el momento de
ejecucin.
Desee introducir fcilmente nuevas formas de llevar a
cabo una accin.
Desee que el cdigo sea fcil de mantener cuando tenga
que aadir comportamientos.

Estrategia
Implementacin:
El patrn de estrategia necesita:
StrategyClient: la clase que utiliza las diferentes estrategias,
para ciertas tareas. Mediante una referencia a la instancia de
Strategy que usa y tiene un mtodo para remplazar la actual
instancia de Strategy con otra implementacin de Strategy.
Strategy: la interfaz en la que de definen todos los metodos
disponibles para ser utilizados por StrategyClient.
ConcretStrategy: la clase que implementa la interfaz Strategy
utilizando un conjunto especifico de reglas para cada uno de los
mtodos de la interfaz.

Estrategia
Implementacin:

Estrategia

Estrategia

Estrategia

Estrategia
Ventajas e inconvenientes:
Cada comportamiento se define en su propia clase, por lo que se
consigue que sean mas faciles de mantener. Tambien resulta mas
sencillo ampliar el modelo para incorporar nuevos
comportamientos sin el alto coste de modificar todo el codigo
completo de la aplicacion.
El desafio principal del patron estrategia reside en decidir
exactamente como representar un comportamiento que puede ser
invocado. Cada estrategia debe tener la misma interfaz hacia el
objeto invocador. Debe identificar una interfaz suficientemente
genrica para ser aplicada a distintas implementaciones, pero que
al mismo tiempo sea suficientemente especifica para ser
utilizadas por las distintas estrategias concretas.

Estrategia
Patrones relacionados:
Entre los patrones relacionados se incluyen:
Singleton: (Unico) las implementaciones de Strategy a veces esta
representadas por Singletons o por uso esttico.
Flyweight (Peso Ligero) algunas veces los objetos Strategy se
implementan como Flyweights que su creacion sea menos costosa.
Factory Method (Metodo de fabricacion) el patron strategy se puede
definir como una fabrica para que la clase que lo utiliza pueda
emplear nuevas implementaciones de strategy sin tener que modificar
ninguna otra parte de la aplicacion.

Estrategia
Caso de estudio:
Realizaremos una pequea lista de contactos.
La cual almacena:
nombres
apellidos
cargo
organizacin.
Usaremos el patron strategy para ordenar los contactos de dos
distintas maneras.
ordenar por apellidos
ordenar por organizacion

Vous aimerez peut-être aussi