Galera não estou entedendo esse código referente ao Singleton, esse design pattern garente que
minha classe terá apenas um instância. Eu não consegui enteder esse código abaixo:
public class SingletonLog
{
// Construtor privado. Suprime o construtor publico padrao.
private SingletonLog()
{
// Leitura da configuração de log. Normalmente descrita em um arquivo.
}
// Faz o log de eventos da aplicacao
public void doLog(String eventDescription)
{
}
//Retorna a instancia unica da classe SingletonLog
public static SingletonLog getInstance()
{
return SingletonLogHolder.instance;
}
//Classe auxiliar para criacao da instancia. Evita problemas de sincronizacao de threads.
private static class SingletonLogHolder
{
private static SingletonLog instance = new SingletonLog();
}
}
Essa parte que eu não entendi:
public static SingletonLog getInstance()
{
return SingletonLogHolder.instance;
}
//Classe auxiliar para criacao da instancia. Evita problemas de sincronizacao de threads.
private static class SingletonLogHolder
{
private static SingletonLog instance = new SingletonLog();
}
Toda vez que é chamado o método getInstance() é acriada uma nova instância para a classe SingletonLog,
fiz um teste mesmo criando uma nova instância parace que ela aponta para mesma area de memória, pelo que sei todo
vez que se da um new é alocada uma nova área de memória pois estamos criando um novo “Objeto”, neste caso mesmo dando um new
ele aponta para mesma área de mémoria alguém sabe o porque…?
