Principios y arquitectura / Patrones de diseño / Creacionales
Singleton
Notas originales de SunDiaL · Ver fuente en inglés
El problema: Necesitas garantizar que un objeto tenga una sola instancia, sin convertir la clase en estática.
La solución: Hacer que la clase mantenga una referencia estática a sí misma.
En la práctica, hoy en día no deberías necesitar hacerlo, porque la mejor opción es inyectar la clase como singleton. Pero, si lo necesitas, así se hace.
public class SingletonExample
{
private static SingletonExample instance;
public SingletonExample Instance
{
get
{
//only create one instance ever.
if(instance == null)
{
instance = new SingletonExample();
}
return instance;
}
}
//prevent access to the constructor from outside by
//explicitly adding a private one.
private SingletonExample() { }
}