In questo articolo parleremo del Design Pattern creazionale chiamato Singleton.
Cominciamo a vedere questo pattern che viene utilizzato quando dobbiamo riferirci ad un oggetto che deve essere unico e di cui non devono esistere altre istanze.
Il singleton definisce uno schema che ci permette appunto di fare in modo che esista un’ istanza prototipa e la possibilità di creare nuove istanze tramite la copia di questa.
Vediamo dunque come si implementa in Java:
public class Prova { private static Prova instance; //1 private Prova(){} //2 public static Prova getInstance() //3 { if(instance == null) instance = new Prova(); return instance; } }
Le cose importanti sono:
[fancy_numbers]
- Ci creiamo una istanza privata e statica della nostra classe,
- Rendiamo il costruttore privato in modo che non sia possibile fare new Prova(); all’ esterno della classe Prova,
- Creiamo un metodo pubblico e statico getInstance() che crea un’istanza di prova e la ritorna.
[/fancy_numbers]
Quando vorremo instanziare una oggetto di tipo Prova, dovremo fare:
Prova mioOggetto = Prova.getInstance();
Ed ogni volta che useremo Prova.getInstance() ci ritroveremo sempre la stessa istanza di Prova.