Technorati Tag:

Oggi voglio illustrare come è possibile implementare un pattern di tipo singleton utilizzando il nostro amato C#.

Per cominciare diamo una definzione di pattern singleton. Un pattern singleton ha lo scopo di creare una sola istanza di una certa classe e consentire che l' accesso a tale classe sia Globale, in un punto noto.

Come si implementa?

Questo codice, molto semplice, rappresenta una classe implementata con questo pattern:

// "Singleton"
class Singleton 
{
private static Singleton instance; 
protected Singleton() 

}
public static Singleton Instance() 
{
if (instance == null) 

   instance = new Singleton(); 
}
return instance; 

}

Il codice sopra esposto è molto semplice. Per prima cosa dichiariamo nella nostra classe un riferimento statico alla stessa. Avendo un costrutto privato, quindi non accessibile, possiamo verificare l' esistenza dell' istanza solamente tramite la funzione Istance.

Quindi per fare una verifica di quanto detto sopra potremmo scrivere :

Singleton s1 = Singleton.Instance();
Singleton s2 = Singleton.Instance();
if (s1 == s2)
{
   Console.WriteLine("Questi oggetti sono uguali!!");
}

Vi rimando comunque alla lettura di wiki.ugidotnet nella quale potete trovare un maggiore dettaglio relativo a questo ed altri pattern. Pattern Singleton