← 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