viernes, 29 de mayo de 2009
Strategy

Permite mantener un conjunto de algoritmos de los que el objeto cliente puede elegir aquel que le conviene e intercambiarlo según sus necesidades.

Características generales de este patrón:

Nombre:

Strategy.

También conocido como:

Policy.

Propósito:

Define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables. Strategy permite al algoritmo variar independientemente de los clientes que lo utilicen.

Aplicabilidad:

Este patrón se utiliza generalmente cuando:

· Se tiene una variedad de maneras de realizar una acción.

· Se puede no saber qué enfoque es apropiado paraa utilizar hasta el tiempo de ejecución.

· Se quiere añadir fácilidad a las posibles formas de realizar una acción.

· Se desea conservar el código mantenible a medida que se añaden comportamientos.

Estructura:

Participantes:

· Strategy: Declara una interfaz común a todos los algoritmos soportados.

· ConcreteStrategy: Implementa el algoritmo que usa la interfaz Strategy.

· Context: Se configuran con un objeto ConcreteStrategy. Mantiene una referencia a un objeto Strategy. Puede definir una interfaz que permite acceder a sus datos.

Consecuencias:

· Se define una familia de algoritmos similares mediante la cual es posible elegir una implementación (variante) particular.

· La lógica condicional es eliminada del Contexto.

· Los clientes quedan acoplados con las estrategias concretas por lo que es recomendable utilizar este patrón solamente cuando las variantes sean relevantes para los clientes.

· Diferentes alternativas para que las estrategias tengan disponibles los datos que necesitan para funcionar.

· Las estrategias aumentan la cantidad de objetos de la aplicación

Patrones relacionados:

· Singleton.

· Flyweight.

· Factory Method.

Etiquetas: , ,

 
posted by Camilo Mojica at 21:33 | Permalink |


0 Comments: