Sobes.tech
Junior — Middle

Em que momento ocorre a criação da instância do Singleton?

sobes.tech IA

Resposta da IA

A criação de uma instância do padrão Singleton ocorre no momento do primeiro acesso a essa instância, se for utilizado um método de inicialização preguiçosa (lazy).

Ou seja, o objeto é criado na primeira chamada ao método que retorna a instância Singleton, por exemplo, getInstance(). Isso permite adiar a criação do objeto até que seja necessário, economizando recursos.

Exemplo de inicialização preguiçosa do Singleton em Android/Java:

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // construtor privado
    }

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

Se, por outro lado, a inicialização na carga da classe (eager initialization) for usada, então a instância é criada imediatamente ao carregar a classe, antes do primeiro acesso.