Sobes.tech
Junior — Middle

Кога се случва създаването на Singleton екземпляра?

sobes.tech AI

Отговор от AI

Създаването на екземпляр на шаблона Singleton се случва в момента на първия достъп до този екземпляр, ако се използва ленив (lazy) метод за инициализация.

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

Пример за ленива инициализация на Singleton в Android/Java:

public class Singleton {
    private static Singleton instance;

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

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

Ако се използва инициализация при зареждане на класа (eager initialization), тогава екземплярът се създава веднага при зареждането на класа, преди първия достъп.