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