Singleton Design Pattern in Java

Il design pattern Singleton è il primo design pattern in cui si si imbatte, ed è molto importante anche perché aiuta a comprendere meglio i linguaggi OOP.

Potete trovare un'ottima introduzione presso Wikipedia, dove leggiamo:

Il metodo più semplice per implementare questo pattern è quello di rendere privato il costruttore della classe impedendone così l'istanziazione diretta, e nello stesso tempo fornire un metodo getter statico che restituisca ogni volta la stessa, unica, istanza
Ecco un esempio in Java:
public class MioSingolo {
    private static MioSingolo istanza = null;
private MioSingolo() {}

public static MioSingolo getMioSingolo() {
    if (istanza == null) {
        istanza = new MioSingolo();
    }
    return istanza;
}

}

Ecco lo stesso esempio thread safe...

public class MioSingolo {
    private static MioSingolo istanza = null;

    private MioSingolo() {}

    public static synchronized MioSingolo getMioSingolo() {
        if (istanza == null) {
            istanza = new MioSingolo();
        }
        return istanza;
    }
}

Riferimenti