Guía rápida: ¿Cómo aplicar el patrón de diseño de software: singleton?. Definiciones + ejemplo práctico.
Tema 1: ¿Qué es?
El patrón de diseño de software: Singleton, es una técnica que tiene como objetivo, que una clase solo pueda construir e instanciar un objeto. Una vez diligenciado cada elemento estaremos generando los siguientes beneficios:
* Simplificar la gestión de los recursos de infraestructura.
* Evitar múltiples instancias de una clase que puedan afectar su rendimiento.
* Permitir el acceso a la clase desde cualquier parte del código fuente.
Las buenas prácticas para materializar los beneficios enunciados, son las siguientes:
* Construir el diagrama de clases de la aplicación de software.
* Identificar las clases que solo requieren instanciar una vez el objeto dentro de la aplicación de software.
* Generar un constructor privado que solo permita la creación de una instancia dentro de la clase.
* Generar un método estático que solo devuelva una única instancia de la clase.
* 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: singleton.
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. | Ver el contenido de la presente guía. | |
| 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.