Sobes.tech
Junior — Middle

Как да реализираме ленивата инициализация на патърна Singleton?

sobes.tech AI

Отговор от AI

Мързеливата инициализация на Singleton в Java позволява създаването на екземпляр на класа само при първия му достъп, което спестява ресурси. Един от най-разпространените начини е използването на вътрешен статичен клас:

public class Singleton {
    private Singleton() {
        // частен конструктор
    }

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

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

Тук класът Holder се зарежда и инициализира само при първия извик на getInstance(), което осигурява безопасност при многонитови среди и лениво инициализиране без синхронизация.