Il Singleton è uno dei pattern creazionali di programmazione più diffusi. Serve a limitare la possibilità di creare istanze di una classe, mettendone a disposizione un'unica per tutte le richieste.
Per implementarlo in una classe da noi creata, basta rendere il costruttore privato e creare un metodo statico, shared in VB, (detto getter) che potremmo chiamare getInstance(), che ritorna l'unica istanza disponibile.
Nel caso in cui, l'istanza unica non venga generata nel costruttore statico ma alla prima chiamata, si va ad utilizzare una inizializzazione detta lazy (pigra).
es non lazy
class singleton
{
private void singleton() { } //costruttore privato
private static singleton instance = new singleton(); //istanza privata della classe
public static singleton getInstance() { return instance; } //metodo getter
}
es lazy
class singleton
{
private void singleton() { } //costruttore privato
private static singleton instance; //istanza privata della classe
public static singleton getInstance()
{
if (instance == null) // inizializzazione lazy
instance = new singleton();
}
}
wiki:
http://it.wikipedia.org/wiki/Singleton