Sobes.tech
Junior — Middle

Qual é a finalidade do padrão Lazy Singleton e como é implementado?

sobes.tech IA

Resposta da IA

O padrão Lazy Singleton destina-se a criar uma única instância de uma classe, sendo que essa instância é inicializada apenas na primeira vez que é acedida, e não ao carregar a classe. Isto ajuda a economizar recursos se o objeto puder não ser necessário.

Exemplo de implementação do Lazy Singleton em Java usando inicialização diferida e sincronização:

public class LazySingleton {
    private static LazySingleton instance;

    private LazySingleton() {
        // construtor privado
    }

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

Aqui, o objeto é criado apenas na primeira chamada de getInstance(). A sincronização garante a segurança em ambientes multithread, mas pode afetar o desempenho. Para melhorar, pode-se usar a verificação dupla de bloqueio (double-checked locking) ou uma classe interna estática.