Está en la página 1de 9

PATRONES DE DISEO

(PATRON ESTRATEGIA)
PONENTES
CESAR VASQUEZ GERMAN
MAIRO TAPIA CANTERO
RAFAEL CARABALLO OYOLA
INGENIERA DE SISTEMAS Y TELECOMUNICACIONES
UNIVERSIDAD DE CRDOBA
MONTERA COLOMBIA
2014

PATRON ESTRATEGIA
DEFINICION
Define una familia de algoritmos, encapsula cada uno de ellos y los hace
intercambiables. Permite que un algoritmo vari independientemente de los
clientes que lo usan.

PATRON ESTRATEGIA
PARTICIPANTES

Estrategia (Interfaz)

Declara la interfaz comn a todos los algoritmos permitidos.

El *contexto* usa esa interfaz para llamar al algoritmo definido por una estrategia

Estrategia Concreta

Implementa el algoritmo concreto

Contexto

Instancia un objeto Estrategia Concreta

Mantiene una referencia a un objeto estrategia (concreta)

Puede definir una interfaz que permita a la Estrategia (concreta) acceder a sus
datos

PATRON ESTRATEGIA
DIAGRAMA DE CLASES

PATRON ESTRATEGIA
CONSECUENCIAS

La herencia puede ayudar a factorizar las partes comunes de las familias de


algoritmos (sustituyendo el uso de bloques de instrucciones condicionales).

El uso del patrn proporciona una alternativa a la extensin de contextos, ya


que puede realizarse un cambio dinmico de estrategia.

Los clientes deben conocer las diferentes estrategias y debe comprender las
posibilidades que ofrecen.

PATRON ESTRATEGIA
COLABORACIONES
Es necesario el intercambio de informacin entre estrategia y contexto. Este
intercambio puede realizarse de dos maneras:

Mediante parmetros en los mtodos de la estrategia.

Mandndose, el contexto, a s mismo a la estrategia.

Los clientes del contexto lo configuran con una estrategia concreta. A partir de
ah, solo se interacta con el contexto.

PATRON ESTRATEGIA
APLICABILIDAD

Cualquier programa que ofrezca un servicio o funcin determinada, que pueda ser
realizada de varias maneras, es candidato a utilizar el patrn estrategia. Puede
haber cualquier nmero de estrategias y cualquiera de ellas podr ser intercambiada
por otra en cualquier momento, incluso en tiempo de ejecucin. Si muchas clases
relacionadas se diferencian nicamente por su comportamiento, se crea una
superclase que almacene el comportamiento comn y que har de interfaz hacia las
clases concretas.

Si un algoritmo utiliza informacin que no deberan conocer los clientes, la


utilizacin del patrn estrategia evita la exposicin de dichas estructuras. Aplicando
el patrn a una clase que defina mltiples comportamientos mediante instrucciones
condicionales, se evita emplear estas instrucciones, moviendo el cdigo a clases
independientes donde se almacenar cada estrategia.

Efectivamente, como se comenta anteriormente, este patrn de diseo nos sirve para
intercambiar un sin nmero de estrategias posibles.

PATRON ESTRATEGIA
IMPLEMENTACION
Entre las posibilidades disponibles a la hora de definir la interfaz entre estrategia
y contexto, estn:

Pasar como parmetro la informacin necesaria para la estrategia implica un


bajo acoplamiento y la posibilidad de envo de datos innecesarios.

Pasar como parmetro el contexto y dejar que la estrategia solicite la


informacin que necesita supone un alto acoplamiento entre ellos.

Mantener en la estrategia una referencia al contexto (similar al anterior).

Tambin puede ocurrir que se creen y se utilicen los objetos estrategia en el


contexto solo si es necesario, en tal caso las estrategias sern opcionales.

GRACIAS

También podría gustarte