Singleton: La Instancia Única
Asegura que una clase tenga solo una instancia y proporciona un punto de acceso global — pero el abuso crea estado global oculto y dificulta las pruebas.
Por qué importa
Singleton es uno de los patrones más mal utilizados. Cuándo funciona: un gestor de configuración, logger, o pool de conexiones — genuinamente se necesita una instancia compartida. La trampa es usar Singleton como atajo para el estado global. La instancia se convierte en un acoplamiento invisible: cada clase que llama a getInstance() está secretamente acoplada a la clase concreta, y las pruebas no pueden sustituir un doble sin monkey-patching.
Seguridad en hilos y módulos Python
En Python, los módulos son singletons por defecto — importar el mismo módulo dos veces devuelve el mismo objeto. Una instancia a nivel de módulo es el enfoque idiomático. En TypeScript, los módulos ES se comportan igual. Antes de usar una clase Singleton, pregúntate si una constante a nivel de módulo ya resuelve el problema.
💡Conclusión clave
Si tu Singleton hace que las pruebas unitarias requieran infraestructura real, se ha convertido en un antipatrón — inyecta la dependencia para que los llamadores y las pruebas puedan suministrar lo que necesitan.
🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.
Pista: Si tu Singleton hace que las pruebas unitarias requieran una base de datos real, se ha convertido en un antipatrón. Inyecta la dependencia en su lugar.
✗ Tu versión