Sobes.tech
Junior — Middle

Come implementare l'inizializzazione lazy del pattern Singleton?

sobes.tech AI

Risposta dell'AI

L'inizializzazione lazy del Singleton in Java consente di creare un'istanza della classe solo al primo accesso, risparmiando risorse. Uno dei metodi più comuni è l'uso di una classe interna statica:

public class Singleton {
    private Singleton() {
        // costruttore privato
    }

    private static class Holder {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return Holder.INSTANCE;
    }
}

Qui, la classe Holder viene caricata e inizializzata solo alla prima chiamata di getInstance(), garantendo sicurezza thread-safe e un'inizializzazione lazy senza sincronizzazione.