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

Каким образом реализовать паттерн Singleton для конкретного типа А?

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

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

sobes.tech AI

Паттерн Singleton в Java реализуется так, чтобы для конкретного класса A существовал только один экземпляр, доступный глобально.

Пример реализации Singleton для класса A с ленивой и потокобезопасной инициализацией:

public class A {
    private static volatile A instance;

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

    public static A getInstance() {
        if (instance == null) {
            synchronized (A.class) {
                if (instance == null) {
                    instance = new A();
                }
            }
        }
        return instance;
    }
}

Здесь используется двойная проверка (double-checked locking) для обеспечения потокобезопасности и ленивой инициализации.

Другой простой способ — использовать enum:

public enum A {
    INSTANCE;
    // методы и поля
}

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