Patron Strategy

Introduccion:

Define una familia de algoritmos, encapsula uno de ellos y los hace intercambiables. Permite que un algoritmo varie independientemente de los clientes que lo usan.

Nombre del Patron:
Strategy (Estrategia, Policy).

Clasificacion del Patron:
Patron de Comportamiento.

Intencion:

Definir un grupo de clases que representan un conjunto de posibles comportamientos. Estos comportamientos pueden ser facilmente intercambiados en una aplicacion, modificando la funcionalidad en cualquier instante.

Motivacion:

Estructurar una familia de algoritmos de modo que sus clientes puedan intercambiarlos en tiempo de ejecución.

Estructura:



Participantes:

IStrategy: declara una interfaz común para todos las variantes de un algoritmo.

StrategyX: implementa una variante del algoritmo.

StrategyClient: es el responsable de crear y mantener una referencia a una estrategia concreta.

Colaboraciones:

El cliente de la estrategia decide la estrategia a crear.

Consecuencias:

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.

4 comentarios:

  1. Muy linda la interpretación teórica pero donde esta el código???

    ResponderEliminar
  2. Si, la parte teorica se ve bien, pero a este aporte le hace falta, aparte de lo antes dicho, un mejor ejemplo del diagrama, es decir, este esta algo abstracto o pobre, seria mejor si lo aplicas en algun otro caso mas realista, algo simple.

    ResponderEliminar
  3. ps x algo es un uml...aprendan a leerlo
    PD.java guacala...

    ResponderEliminar
  4. xXzeroXx tiene razón, aprendan a leer

    ResponderEliminar

Hora Bogotá Colombia