JavaScriptPOOintermediario

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

Mais exercícios de POO

JSP021 · AvançadoClasse LinkedListJSP005 · BásicoContador de instânciasJSP008 · Básicoinstanceof e verificação de tipoJSP009 · BásicoClasse abstrata simulada
Ver todos os exercícios de JavaScript