SlideShare una empresa de Scribd logo
•Este patrón define un conjunto de algoritmos,
encapsula cada uno de ellos y los hace
intercambiables. Permite que el algoritmo
pueda variar independientemente de los
clientes que lo utilicen.
• La estrategia es un patrón de diseño de
comportamiento que convierte un conjunto de
comportamientos en objetos y los hace
intercambiables dentro del objeto de contexto
original.
• El objeto original, denominado contexto, contiene una
referencia a un objeto de estrategia y lo delega
ejecutando el comportamiento. Para cambiar la forma
en que el contexto realiza su trabajo, otros objetos
pueden reemplazar el objeto de estrategia
“Es considerable el uso del patrón de estrategia
cuando necesitamos elegir entre clases
similares que son diferentes solo en su
implementación.”
Dicho de otro modo, cuando tenemos varias formas (algoritmos) para
realizar la misma operación y queremos que la aplicación elija la forma
específica en función de los parámetros que tenga.
Hay tres secciones principales de códigos que son los
distintivos del patrón de estrategia :
Varias clases que implementan la misma interfaz .
Un código que elige a partir de cuál de las clases crear un
objeto.
Una clase de cliente que se alimenta con el objeto y realiza
la tarea que el programa debe realizar.
• Las clases y objetos que participan en este modelo
son:
• Strategy
• Declara una interfaz común para todos los algoritmos
compatibles. El Contex utiliza esta interfaz para llamar al
algoritmo definido por un ConcreteStrategy
• ConcreteStrategy
• Implementa el algoritmo utilizando la interfaz de Strategy
• Context
• Está configurado con un objeto ConcreteStrategy
• Mantiene una referencia a un objeto de Strategy
• Puede definir una interfaz que le permite acceder a sus
Nunca hay que olvidar
“Si el contexto
cambia, entonces
cambia la estrategia”
• Cuando tienes un objeto que debería poder hacer la misma tarea de
muchas maneras diferentes.
• El patrón de Estrategia le permite alterar el comportamiento del
objeto en el tiempo de ejecución, proporcionándole diferentes sub-
objetos que realizan el trabajo.
• Cuando tienes muchas clases similares, difieren en la forma en que
ejecutan algún comportamiento.
• El patrón de Estrategia le permite combinar todas estas clases en una,
extrayendo todas las variantes del comportamiento en una jerarquía
de clases separada, haciendo que el comportamiento de la clase
original sea personalizable.
• Cuando no quiera exponer los detalles de implementación del
algoritmo a otras clases.
• El patrón de Estrategia aísla el código, los datos internos y las
dependencias de los algoritmos de otros objetos al extraerlos en sus
propias clases.
• Un algoritmo condicional selecciona un algoritmo para ser
ejecutado. Cada rama del condicional representa algoritmo diferente.
• Estrategia le permite descomponer el condicional extrayendo cada
algoritmo en sus propias clases, todas las cuales implementan una
interfaz común. El contexto delega la ejecución a uno de estos
objetos, en lugar de implementar el comportamiento por sí mismo.
Permite algoritmos de
intercambio en caliente en
tiempo de ejecución.
 Aísla el código y los datos de
los algoritmos de las otras
clases.
 Reemplaza la herencia con
delegación.
Sigue el Principio Abierto /
X Aumenta la complejidad
general del código creando
múltiples clases adicionales.
X El cliente debe ser
consciente de las diferencias
entre las estrategias para
elegir una adecuada.
• Por lo tanto, para concluir, cuando tenemos varias formas de
realizar la misma tarea (en el lenguaje del software cuando
tenemos varios algoritmos para realizar la misma operación),
debemos considerar la implementación del patrón de
Estrategia.
• Al usar este patrón, somos libres de agregar / eliminar un
algoritmo porque el cambio de estos algoritmos no es
transparente para la aplicación.
Strategy pattersn

Más contenido relacionado

Similar a Strategy pattersn

Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
2008PA2Info3
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
Juanes Alzt
 
INFOGRAFIA.pdf
INFOGRAFIA.pdfINFOGRAFIA.pdf
INFOGRAFIA.pdf
FranciscoZurisaddaiM
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
jjegonzalezf
 
Design patterns
Design patternsDesign patterns
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
FabianAndresNuezPinz
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon KoudsiFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
RaimonKoudsi
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
luisortiz
 
Semanas01y02
Semanas01y02Semanas01y02
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
Victor Marquez Hakuna Matata
 
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
Victor Marquez Hakuna Matata
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
kaolong
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
Mariano Sánchez
 
13 clase-flujo-de-analisis
13 clase-flujo-de-analisis13 clase-flujo-de-analisis
13 clase-flujo-de-analisis
Jorge Ortiz Ulloa
 
Uml
UmlUml
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
Mariano Sánchez
 
Caso de uso
Caso de usoCaso de uso
Caso de uso
LorenaMendozaD
 
Transparencias_Patrones.ppt
Transparencias_Patrones.pptTransparencias_Patrones.ppt
Transparencias_Patrones.ppt
BenaventeSolorzanoCa
 
Modelo de analisis expo
Modelo de analisis expoModelo de analisis expo
Modelo de analisis expo
Julio Cesar Alfaro Bonilla
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetos
Eduardo Galindo
 

Similar a Strategy pattersn (20)

Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
INFOGRAFIA.pdf
INFOGRAFIA.pdfINFOGRAFIA.pdf
INFOGRAFIA.pdf
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Design patterns
Design patternsDesign patterns
Design patterns
 
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon KoudsiFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
 
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
 
13 clase-flujo-de-analisis
13 clase-flujo-de-analisis13 clase-flujo-de-analisis
13 clase-flujo-de-analisis
 
Uml
UmlUml
Uml
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
Caso de uso
Caso de usoCaso de uso
Caso de uso
 
Transparencias_Patrones.ppt
Transparencias_Patrones.pptTransparencias_Patrones.ppt
Transparencias_Patrones.ppt
 
Modelo de analisis expo
Modelo de analisis expoModelo de analisis expo
Modelo de analisis expo
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetos
 

Último

Construcción de una estación de radio en distintas bandas y muy bien explicado.
Construcción de una estación de radio en distintas bandas y muy bien explicado.Construcción de una estación de radio en distintas bandas y muy bien explicado.
Construcción de una estación de radio en distintas bandas y muy bien explicado.
JoseLuisAvalos11
 
guia-para-el-diseno-de-parques-locales-accesibles-2023.pdf
guia-para-el-diseno-de-parques-locales-accesibles-2023.pdfguia-para-el-diseno-de-parques-locales-accesibles-2023.pdf
guia-para-el-diseno-de-parques-locales-accesibles-2023.pdf
RofoMG
 
BROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdf
BROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdfBROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdf
BROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdf
IzaakAzaga
 
Lab 0 - Instalación Hidráulica (Completo).docx
Lab 0 - Instalación Hidráulica (Completo).docxLab 0 - Instalación Hidráulica (Completo).docx
Lab 0 - Instalación Hidráulica (Completo).docx
MarcosAntonioAduvire
 
LOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdf
LOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdfLOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdf
LOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdf
BARBARAAMAYA4
 
Catalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial Valencia
Catalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial ValenciaCatalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial Valencia
Catalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
soporte y mantenimiento de equipo de computo
soporte y mantenimiento de equipo de computosoporte y mantenimiento de equipo de computo
soporte y mantenimiento de equipo de computo
mantenimientofresita
 
3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.
3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.
3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.
FranciscoAlbertoPera
 
El Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitectura
El Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitecturaEl Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitectura
El Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitectura
slaimenbarakat
 
manual_civilcad y uso de modulos cargados
manual_civilcad y uso de modulos cargadosmanual_civilcad y uso de modulos cargados
manual_civilcad y uso de modulos cargados
AlbertoGarcia461436
 
Álbum Collage de Fotos día del padre polaroid scrapbook pastel_20240611_040...
Álbum Collage de Fotos día del padre  polaroid scrapbook  pastel_20240611_040...Álbum Collage de Fotos día del padre  polaroid scrapbook  pastel_20240611_040...
Álbum Collage de Fotos día del padre polaroid scrapbook pastel_20240611_040...
Soleito
 
ETAPAS DE LLITIA LITERATURA PERUANA.pptx
ETAPAS DE LLITIA LITERATURA PERUANA.pptxETAPAS DE LLITIA LITERATURA PERUANA.pptx
ETAPAS DE LLITIA LITERATURA PERUANA.pptx
ruthyeimi937
 
puentes_Puentes_Semipermanentes.documento
puentes_Puentes_Semipermanentes.documentopuentes_Puentes_Semipermanentes.documento
puentes_Puentes_Semipermanentes.documento
GuillermoAlejandroCh6
 
Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...
Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...
Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...
AMADO SALVADOR
 
SEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptx
SEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptxSEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptx
SEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptx
CarlosDanielAlanocaT1
 
metodologia empleada en smart toolsboxs.
metodologia empleada en smart toolsboxs.metodologia empleada en smart toolsboxs.
metodologia empleada en smart toolsboxs.
jeanlozano33
 
Centro Veterinario Público CVP Diseño arquitectónico
Centro Veterinario Público CVP Diseño arquitectónicoCentro Veterinario Público CVP Diseño arquitectónico
Centro Veterinario Público CVP Diseño arquitectónico
OmairaQuintero7
 
manual pdf de empresa postres maria jose
manual pdf de empresa postres maria josemanual pdf de empresa postres maria jose
manual pdf de empresa postres maria jose
tatianezpapa
 
DIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptx
DIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptxDIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptx
DIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptx
RONALD533356
 
Manual.pdfsoporte y mantenimientode equipo de computo
Manual.pdfsoporte y mantenimientode equipo de computoManual.pdfsoporte y mantenimientode equipo de computo
Manual.pdfsoporte y mantenimientode equipo de computo
mantenimientofresita
 

Último (20)

Construcción de una estación de radio en distintas bandas y muy bien explicado.
Construcción de una estación de radio en distintas bandas y muy bien explicado.Construcción de una estación de radio en distintas bandas y muy bien explicado.
Construcción de una estación de radio en distintas bandas y muy bien explicado.
 
guia-para-el-diseno-de-parques-locales-accesibles-2023.pdf
guia-para-el-diseno-de-parques-locales-accesibles-2023.pdfguia-para-el-diseno-de-parques-locales-accesibles-2023.pdf
guia-para-el-diseno-de-parques-locales-accesibles-2023.pdf
 
BROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdf
BROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdfBROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdf
BROCHURE QONDESA ABRIL 19 OK_pdf_LLQ.pdf
 
Lab 0 - Instalación Hidráulica (Completo).docx
Lab 0 - Instalación Hidráulica (Completo).docxLab 0 - Instalación Hidráulica (Completo).docx
Lab 0 - Instalación Hidráulica (Completo).docx
 
LOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdf
LOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdfLOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdf
LOS-PROYECTOS-SOCIOPRODUCTIVOS-EN-FUNCIÓN-DE-LA-FORMACIÓN-LABORAL (1).pdf
 
Catalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial Valencia
Catalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial ValenciaCatalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial Valencia
Catalogo General Grespania Ceramica Amado Salvador Distribuidor Oficial Valencia
 
soporte y mantenimiento de equipo de computo
soporte y mantenimiento de equipo de computosoporte y mantenimiento de equipo de computo
soporte y mantenimiento de equipo de computo
 
3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.
3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.
3. PLANOS CONSTRUCTIVOS DE CASA COMUNAL.
 
El Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitectura
El Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitecturaEl Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitectura
El Movimiento Moderno en Venezuela. Y los cambios que trajo en la arquitectura
 
manual_civilcad y uso de modulos cargados
manual_civilcad y uso de modulos cargadosmanual_civilcad y uso de modulos cargados
manual_civilcad y uso de modulos cargados
 
Álbum Collage de Fotos día del padre polaroid scrapbook pastel_20240611_040...
Álbum Collage de Fotos día del padre  polaroid scrapbook  pastel_20240611_040...Álbum Collage de Fotos día del padre  polaroid scrapbook  pastel_20240611_040...
Álbum Collage de Fotos día del padre polaroid scrapbook pastel_20240611_040...
 
ETAPAS DE LLITIA LITERATURA PERUANA.pptx
ETAPAS DE LLITIA LITERATURA PERUANA.pptxETAPAS DE LLITIA LITERATURA PERUANA.pptx
ETAPAS DE LLITIA LITERATURA PERUANA.pptx
 
puentes_Puentes_Semipermanentes.documento
puentes_Puentes_Semipermanentes.documentopuentes_Puentes_Semipermanentes.documento
puentes_Puentes_Semipermanentes.documento
 
Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...
Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...
Catalogo Peronda: Pavimentos y Revestimientos Ceramicos de Calidad. Amado Sal...
 
SEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptx
SEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptxSEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptx
SEMANA 02 TRAZOS DE POLIGONALES TOPOGRÁFICAS 04.pptx
 
metodologia empleada en smart toolsboxs.
metodologia empleada en smart toolsboxs.metodologia empleada en smart toolsboxs.
metodologia empleada en smart toolsboxs.
 
Centro Veterinario Público CVP Diseño arquitectónico
Centro Veterinario Público CVP Diseño arquitectónicoCentro Veterinario Público CVP Diseño arquitectónico
Centro Veterinario Público CVP Diseño arquitectónico
 
manual pdf de empresa postres maria jose
manual pdf de empresa postres maria josemanual pdf de empresa postres maria jose
manual pdf de empresa postres maria jose
 
DIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptx
DIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptxDIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptx
DIAPOSITIVAS MONOGRAFIA de el consumo excesivo del alcohol en adolescentes .pptx
 
Manual.pdfsoporte y mantenimientode equipo de computo
Manual.pdfsoporte y mantenimientode equipo de computoManual.pdfsoporte y mantenimientode equipo de computo
Manual.pdfsoporte y mantenimientode equipo de computo
 

Strategy pattersn

  • 1.
  • 2. •Este patrón define un conjunto de algoritmos, encapsula cada uno de ellos y los hace intercambiables. Permite que el algoritmo pueda variar independientemente de los clientes que lo utilicen.
  • 3. • La estrategia es un patrón de diseño de comportamiento que convierte un conjunto de comportamientos en objetos y los hace intercambiables dentro del objeto de contexto original. • El objeto original, denominado contexto, contiene una referencia a un objeto de estrategia y lo delega ejecutando el comportamiento. Para cambiar la forma en que el contexto realiza su trabajo, otros objetos pueden reemplazar el objeto de estrategia
  • 4. “Es considerable el uso del patrón de estrategia cuando necesitamos elegir entre clases similares que son diferentes solo en su implementación.” Dicho de otro modo, cuando tenemos varias formas (algoritmos) para realizar la misma operación y queremos que la aplicación elija la forma específica en función de los parámetros que tenga.
  • 5. Hay tres secciones principales de códigos que son los distintivos del patrón de estrategia : Varias clases que implementan la misma interfaz . Un código que elige a partir de cuál de las clases crear un objeto. Una clase de cliente que se alimenta con el objeto y realiza la tarea que el programa debe realizar.
  • 6.
  • 7. • Las clases y objetos que participan en este modelo son: • Strategy • Declara una interfaz común para todos los algoritmos compatibles. El Contex utiliza esta interfaz para llamar al algoritmo definido por un ConcreteStrategy • ConcreteStrategy • Implementa el algoritmo utilizando la interfaz de Strategy • Context • Está configurado con un objeto ConcreteStrategy • Mantiene una referencia a un objeto de Strategy • Puede definir una interfaz que le permite acceder a sus
  • 8.
  • 9. Nunca hay que olvidar “Si el contexto cambia, entonces cambia la estrategia”
  • 10. • Cuando tienes un objeto que debería poder hacer la misma tarea de muchas maneras diferentes. • El patrón de Estrategia le permite alterar el comportamiento del objeto en el tiempo de ejecución, proporcionándole diferentes sub- objetos que realizan el trabajo. • Cuando tienes muchas clases similares, difieren en la forma en que ejecutan algún comportamiento. • El patrón de Estrategia le permite combinar todas estas clases en una, extrayendo todas las variantes del comportamiento en una jerarquía de clases separada, haciendo que el comportamiento de la clase original sea personalizable.
  • 11. • Cuando no quiera exponer los detalles de implementación del algoritmo a otras clases. • El patrón de Estrategia aísla el código, los datos internos y las dependencias de los algoritmos de otros objetos al extraerlos en sus propias clases. • Un algoritmo condicional selecciona un algoritmo para ser ejecutado. Cada rama del condicional representa algoritmo diferente. • Estrategia le permite descomponer el condicional extrayendo cada algoritmo en sus propias clases, todas las cuales implementan una interfaz común. El contexto delega la ejecución a uno de estos objetos, en lugar de implementar el comportamiento por sí mismo.
  • 12. Permite algoritmos de intercambio en caliente en tiempo de ejecución.  Aísla el código y los datos de los algoritmos de las otras clases.  Reemplaza la herencia con delegación. Sigue el Principio Abierto / X Aumenta la complejidad general del código creando múltiples clases adicionales. X El cliente debe ser consciente de las diferencias entre las estrategias para elegir una adecuada.
  • 13.
  • 14. • Por lo tanto, para concluir, cuando tenemos varias formas de realizar la misma tarea (en el lenguaje del software cuando tenemos varios algoritmos para realizar la misma operación), debemos considerar la implementación del patrón de Estrategia. • Al usar este patrón, somos libres de agregar / eliminar un algoritmo porque el cambio de estos algoritmos no es transparente para la aplicación.

Notas del editor

  1. Esto quiere decir que nuestros objetos deben estar preparados para afrontar diversos contextos sin cambiar las interacciones de estos con el cliente.
  2. El patrón Strategy (estrategia) es una alternativa a la herencia, si estás pensando usar la herencia para poder agregar nuevos comportamientos a tus objetos, sería conveniente usar este patrón. Si dentro de tu clase haces uso intensivo de las condicionales if, else, swicth, case, eso quiere decir que tu clase tiene asignado muchos comportamientos y/o responsabilidades, lo cual suele ser un indicador de la necesidad aplicar el patrón Strategy (estrategia), para poder encapsular estos comportamientos y delegarlos a otra clase u objeto.
  3. Para estos casos, el patrón de estrategia nos da instrucciones para crear una interfaz que las clases puedan implementar, mientras que la elección de las clases a implementar se realiza durante el tiempo de ejecución del programa.