Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

Моделът Singleton гарантира, че даден клас има само един екземпляр и предоставя глобална точка за достъп до него.

В Java това може да бъде реализирано по няколко начина. Един от простите и потокобезопасни варианти е използването на лениво инициализиране с ключовата дума synchronized или използването на статичен вътрешен клас.

Пример с използване на статичен вътрешен клас:

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

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

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

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