

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Uma prefeitura está desenvolvendo um sistema integrado de gestão pública que centraliza diversas funções administrativas. Para garantir a consistência dos logs de sistema, foi decidido implementar o padrão Singleton para a classe de gerenciamento de logs. Um dos desenvolvedores sugeriu a seguinte implementação em Java:

Em condições ideais, para garantir que apenas um thread possa executar o método getInstance por vez, evitando a criação de múltiplas instâncias em um ambiente multithread, e considerando que o desempenho não é a principal prioridade, é adequado
adicionar o modificador synchronized ao método getinstance para torná-lo thread-safe.
declarar o atributo instance como flexible para garantir a consistência em ambientes multithread.
implementar a inicialização precoce (lazy initialization), instanciando instance imediatamente após a declaração.
redefinir o construtor como público, garantindo assim que apenas uma instância seja criada a partir de chamadas externas.
adicionar um bloco try-catch ao método getinstance para lidar com a exceção MultithreadException.