Il Singleton è un Design pattern molto usato nell'ambito della programmazione a oggetti.
Detta in maniera breve e brutale, una classe Singleton è una classe che garantisce che soltanto un'unica istanza della classe stessa possa essere creata all'interno di un programma.
Costruire una classe Singleton non è difficile, basta seguire alcune specifiche:
- il costruttore deve essre private
- ci si avvale di un metodo statico per accedere all'unica istanza della classe
- gli altri metodi non sono statici
Vediamo qualche esempio generico in Java e C#.
Java:
public class Singleton {
private static class Singleton instance;
private Singleton() { } // costruttore privato
public static Singleton getInstance() {
return (instance == null) ? (instance = new Singleton()) : instance;
}
// altri metodi non statici
}
C# (esempio ripreso da HTML.it):
using System;
public class Singleton
{
private static Singleton istanza;
private Singleton() {}
public static Singleton Instance
{
get
{
if (instanza == null)
{
istanza = new Singleton();
}
return istanza;
}
}
public void helloWorld()
{
Console.WriteLine("Hello World");
}
}
public class usaSingleton
{
public static void Main()
{
Singleton.Instance.helloWorld();
}
}
Singleton potrebbe usato in tutti quei casi in cui si accede spesso ad una classe di supporto.