Sobes.tech
Junior — Middle
65

Каким образом реализовать шаблон Singleton в языке Java?

Компании, где спрашивали
Hftlabs

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

sobes.tech AI

В Java шаблон Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему.

Простейшая реализация с ленивой инициализацией и синхронизацией:

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // приватный конструктор
    }

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

Другой популярный и более эффективный способ — использовать инициализацию через статический вложенный класс:

public class Singleton {
    private Singleton() {}

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

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

Этот способ потокобезопасен и не требует синхронизации при каждом вызове.