Guía rápida: ¿Cómo aplicar el patrón de diseño de software: strategy?. Definiciones + ejemplo práctico.
Tema 1: ¿Qué es?
El patrón de diseño de software: Strategy, es una técnica que tiene como objetivo, establecer el estándar que debe cumplir los objetos para intercambiar mensajes. Una vez diligenciado cada elemento estaremos generando los siguientes beneficios:
* Reducir la complejidad del código al encapsular algoritmos usando objetos separados.
* Facilitar el cambio de algoritmo durante la ejecución de un evento dentro de la aplicación de software.
* Facilita la reutilización de algoritmos.
Las buenas prácticas para materializar los beneficios enunciados, son las siguientes:
* Identificar los algoritmos existentes para resolver un problema.
* Identificar los algoritmos que requieren ser cambiados durante la ejecución de un evento dentro de la aplicación de software.
* Reducir la cantidad de condicionales para que un evento de la aplicación de software acceda a un algoritmo.
* Las condiciones para aplicar correctamente las buenas prácticas enunciadas, se explican en pre-condiciones y post-condiciones.
Tema 2: Pre-Condiciones y Post-Condiciones para aplicar el patrón de diseño de software: strategy.
Este cuadro expone los pasos previos y posteriores que se deben ejecutar para aplicar correctamente las buenas prácticas enunciados en el tema: ¿Qué es?.
| Paso | Acción clave | Condición |
|---|---|---|
| 1. El patrón de diseño de software: Adapter. | Pre. | |
| 2. El patrón de diseño de software: Builder. | Pre. | |
| 3. El patrón de diseño de software: Factory method. | Pre. | |
| 4. El patrón de diseño de software: Observer. | Pre. | |
| 5. El patrón de diseño de software: Singleton. | Pre. | |
| 6. El patrón de diseño de software: State. | Pre. | |
| 7. El patrón de diseño de software: Strategy. | Ver el contenido de la presente guía. | |
Tema 3: Sobre el autor.
Juan David López Pava: Profesional en administración de empresas y desarrollo de software con certificaciones del PMI y Scrum Institute, apasionado por la transformación digital y la dirección de proyectos de tecnología.