Strategy

Strategy

Patrón de diseño de comportamiento

El patrón de diseño strategy permite establecer en tiempo de ejecución el rol de comportamiento de una clase. Stretagy se basa en el polimorfismo para implementar una serie de comportamientos que podrán ser intercambiados durante la ejecución del programa, logrando con esto que un objeto se pueda comportar de forma distinta según la estrategia establecida.

Estructura del patrón de diseño Strategy
Estructura del patrón de diseño Strategy

Los componentes del patrón son los siguientes:

  • Context: Componente que encapsula la estrategia a utilizar, tiene como característica que se puede establecer la estrategia a utilizar en tiempo de ejecución.
  • IStrategy: Interface en común que todas las estrategias deberán implementar. En esta interface se definen las operaciones que las estrategias deberán implementar.
  • ConcreteStrategy: Representa las estrategias concretas, las cuales heredan de IStrategy.
Diagrama de secuencia del patrón de diseño Strategy
Diagrama de secuencia del patrón de diseño Strategy
  1. El cliente crea un nuevo contexto y establece la estrategia A.
  2. El cliente ejecuta la operación doSomething.
  3. Context a su vez delega esta responsabilidad a ConcreteStrategyA.
  4. ConcreteStrategyA realiza la operación y regresa el resultado.
  5. Context toma el resultado y lo regresa al cliente.
  6. El cliente le cambia la estrategia al Context en tiempo de ejecución.
  7. El cliente ejecuta nuevamente la operación doSomething.
  8. Context a su vez delega esta responsabilidad a ConcreteStrategyB.
  9. ConcreteStategyB realiza la operación y regresa el resultado.
  10. Context toma el resultado y lo regresa al cliente.

Ejemplo del mundo real

Mediante la implementación del patrón de diseño Strategy desarrollaremos una aplicación que permita la autenticación mediante diversos métodos. El usuario podrá autenticarse mediante una configuración de usuario por XML, Base de datos o una configuración en memoria. Mediante el patrón Strategy, nuestro cliente podrá configurar la aplicación para elegir que método de autenticación que le es más conveniente, todo esto, sin necesidad de programar nada adicional.

Descubre como el patrón Strategy nos ayuda a resolver este problema
Descubre como el patrón Strategy nos ayuda a resolver este problema

¿Sabes la importancia de los patrones de diseño?

Los patrones de diseño son la clave para crecer profesionalmente hacia la arquitectura de software, sin mencionar que los salarios son los más altos de la industria de IT, descúbrelo en este video.

🎉 Este video es parte del curso de patrones de diseño, inscríbete aquí 🎉

Acerca de este libro

Introducción a la arquitectura de software

Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a los patrones de diseño, el libro más completo de patrones de diseño en español, abarcamos 25 patrones de diseño junto con 25 proyectos del mundo real. Olvídate de aprender patrones de diseño con los ejemplos típicos de Internet de cómo hacer una pizza, animales y figuras geométricas. te invito a que veas mi libro:

Ver libro
Todos los derechos reservados ©