Padrão Singleton
Em sistemas reais, muitas vezes você precisa de uma única fonte de verdade para configurações ou logs. Se cada parte do código criasse sua própria instância, mudanças num lugar não refletiriam em outro, causando inconsistências. O padrão Singleton garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a ela.
O PROBLEMA
Implemente Singleton para Configuracoes com campo estático privado. Apenas uma instância.
EXEMPLO
const c1 = Configuracoes.getInstance(); const c2 = Configuracoes.getInstance(); c1 === c2 → true new Configuracoes() → throw
SOBRE O CONCEITO
O Singleton é implementado com um campo estático privado (no JavaScript, usamos #campo) para armazenar a única instância. O construtor deve ser privado ou lançar erro se chamado diretamente com new. O método estático getInstance() verifica se o campo está vazio; se sim, cria uma nova instância; senão, retorna a existente. Erro comum é não verificar a instância existente, criando uma nova a cada chamada, o que quebra o padrão. Outro erro é usar variável global ou objeto literal, que não garantem controle sobre a instância.
RESOLUÇÃO