Guía rápida: ¿Cómo aplicar el patrón de diseño de software: factory method?. Definiciones + ejemplo práctico.
Tema 1: ¿Qué es?
El patrón de diseño de software: Factory method, es una técnica que tiene como objetivo, implementar una clase haciendo uso de subclases y agrupando los métodos de la clase entre las subclases creadas. Una vez diligenciado cada elemento estaremos generando los siguientes beneficios:
* Facilitar el mantenimiento y administración de funcionalidades complejas dentro de la aplicación de software.
* Optimizar el tiempo y mantenimiento de funcionalidades complejas dentro de la aplicación de software.
* Asegurar la escalabilidad de las funcionalidades complejas de la aplicación de software.
Las buenas prácticas para materializar los beneficios enunciados, son las siguientes:
* Identificar las funcionalidades de complejidad alta dentro de la aplicación de software.
* Identificar los comportamientos que tendrá el objeto de la clase que soportará una funcionalidad de complejidad alta.
* Crear una subclase para cada comportamiento.
* Definir las propiedades que tendrá cada subclase.
* 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: factory method.
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. | Ver el contenido de la presente guía. | |
| 4. El patrón de diseño de software: Observer. | Post. | |
| 5. El patrón de diseño de software: Singleton. | Post. | |
| 6. El patrón de diseño de software: State. | Post. | |
| 7. El patrón de diseño de software: Strategy. | Post. | |
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.