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 libroStrategy
Patrón de diseño de comportamientoEl 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.
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.
- El cliente crea un nuevo contexto y establece la estrategia A.
- El cliente ejecuta la operación doSomething.
- Context a su vez delega esta responsabilidad a ConcreteStrategyA.
- ConcreteStrategyA realiza la operación y regresa el resultado.
- Context toma el resultado y lo regresa al cliente.
- El cliente le cambia la estrategia al Context en tiempo de ejecución.
- El cliente ejecuta nuevamente la operación doSomething.
- Context a su vez delega esta responsabilidad a ConcreteStrategyB.
- ConcreteStategyB realiza la operación y regresa el resultado.
- 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.
¿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.