Sobes.tech
Назад к вопросам
Junior — Middle
128

Каким образом реализовать ленивую инициализацию паттерна Singleton?

Ответ от нейросети

sobes.tech 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(), что обеспечивает потокобезопасность и ленивую инициализацию без синхронизации.