Sobes.tech
Junior — Middle

Ako implementovať lenivú inicializáciu vzoru Singleton?

sobes.tech AI

Odpoveď od AI

Lenivá inicializácia Singleton v Jave umožňuje vytvoriť inštanciu triedy iba pri prvom prístupe, čím sa šetria zdroje. Jedným z najbežnejších spôsobov je použitie vnútornej statickej triedy:

public class Singleton {
    private Singleton() {
        // súkromný konštruktor
    }

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

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

Tu sa trieda Holder načíta a inicializuje iba pri prvom volaní metódy getInstance(), čo zabezpečuje bezpečnosť vlákien a lenivú inicializáciu bez synchronizácie.