← Proyectos y patrones
Singleton
Garantizar una única instancia compartida de un recurso cuando su ciclo de vida global está realmente justificado.
Qué resuelve
Controla recursos que deben coordinarse como una sola instancia, por ejemplo una configuración inmutable o un cliente reutilizable.
En aplicaciones .NET, el contenedor de DI suele expresar el alcance singleton sin ocultar la composición.
Cuándo tiene sentido
Cuando el estado es inmutable o el recurso es seguro para concurrencia y debe reutilizarse.
No debe usarse solo para compartir estado mutable global.
Compensaciones
El estado mutable global dificulta los tests, crea acoplamiento temporal y puede provocar condiciones de carrera.
El singleton no es sinónimo de thread-safe: la seguridad de concurrencia debe diseñarse explícitamente.
Comentarios