Plantilla Del Patrón Strategy

Páginas: 2 (361 palabras) Publicado: 25 de octubre de 2015
Plantilla del Patrón Strategy
También Conocido como Policy
Propósito: Definir una familia de algoritmos, encapsularlos y hacerlos intercambiables. Permite que el algoritmo cambie sin que afecte alos clientes que lo usan.
Aplicabilidad:
Varias clases relacionadas sólo difieren en su comportamiento. Strategy permite configurar a una clase con uno de entre varios comportamientos.
Se necesitenvariantes del mismo algoritmo, que se implementan como una jerarquía de clases.
Un algoritmo usa datos que los clientes no tienen por qué conocer.
Una clase define muchos comportamientos que aparecen ensentencias condicionales.
Estructura:

Participantes:
Strategy (Compositor): define una interfaz común a los algoritmos que soporta.
ConcreteStrategy (SimpleCompositor, TeXCompositor,ArrayCompositor): implementa un algoritmo usando la interfaz Strategy.
Context (Composition):
Está configurado con un objeto ConcreteStrategy.
Mantiene una referencia al objeto Strategy.
Puede definir una interfazque le permita a Strategy acceder a sus datos.
Consecuencias:
Ayuda a factorizar funcionalidad común de los algoritmos.
Alternativa a herencia estática, lo que facilita la comprensión, mantenimiento yextensión.
Permite cambiar el algoritmo en tiempo de ejecución.
Elimina algunas sentencias condicionales.
Diferentes implementaciones del mismo comportamiento.
El cliente debe entender en qué difierenlas implementaciones de una estrategia → usar el patrón sólo si esas diferencias son relevantes.
Incremento del número de objetos, que se puede reducir implementando estrategias sin estadocompartidas.
Código Ejemplo:
public interface Strategy {
public void execute();}

public class ConcreteStrategyA implements Strategy {
public void execute() { ... }}

public class ConcreteStrategyB implementsStrategy {
public void execute() { ... }}


public class Context {
private Strategy _strategy;
public Context (Strategy s) { _strategy = s; }
public Context () { _strategy = new ConcreteStrategyA();...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Patrón De Diseño (Strategy)
  • Patron De Plantilla
  • Plantillas
  • plantillas
  • PLANTILLA
  • Plantilla
  • plantilla
  • plantilla a

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS