STUPID Singleton Abusivo
El Singleton Abusivo es un antipatrón relacionado con el uso excesivo o incorrecto del patrón de diseño Singleton. Aunque el patrón Singleton tiene su utilidad (por ejemplo, garantizar una única instancia global de una clase en toda la aplicación), su abuso puede generar problemas de diseño y mantenimiento en el código.
1. Ejemplo Mal #
Cargando actividad al acercarte…
Problema: Los singletons abusivos dificultan las pruebas y reducen la flexibilidad.
Solución: Usa singletons solo si son absolutamente necesarios y limítalos correctamente.
2. Ejemplo Corregido #
Cargando actividad al acercarte…
Resumen del tema
Conceptos clave #
- Abuso del Patrón Singleton: utilizar
getInstance()de forma indiscriminada en múltiples capas introduce acoplamiento global y dependencias ocultas difíciles de rastrear. - Dificultad de Testing (Mocks): las clases que consumen directamente singletons globales no pueden sustituir fácilmente sus dependencias por mocks o stubs en pruebas unitarias.
- Inyección de Dependencias como Alternativa: pasar la instancia del servicio a través del constructor permite un control total del ciclo de vida y facilita el testing.
Qué debes recordar #
Evita el Singleton como mecanismo de acceso global; prefiere inyectar las dependencias por constructor para desacoplar componentes y posibilitar pruebas unitarias.