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.