Sobes.tech
Junior — Middle

Hogyan valósítható meg a Singleton minta lustán történő inicializálása?

sobes.tech MI

Válasz az MI-től

A Java-ban a késleltetett Singleton inicializálás lehetővé teszi, hogy az osztály példányát csak az első hozzáféréskor hozzuk létre, így erőforrásokat takarít meg. Az egyik leggyakoribb módszer a belső statikus osztály használata:

public class Singleton {
    private Singleton() {
        // privát konstruktor
    }

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

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

Itt a Holder osztály csak az első getInstance() híváskor töltődik be és inicializálódik, így biztosítva a szálbiztonságot és a késleltetett inicializálást szinkronizáció nélkül.