Mini framework reativo
Sistemas reativos aparecem em toda UI moderna. Em React, Vue ou Svelte, quando o estado muda, a tela atualiza automaticamente. Dominar esse padrão com closures e observers te dá controle sobre como propagar mudanças sem frameworks pesados.
O PROBLEMA
Implemente criarEstado(inicial) que retorna [obterEstado, definirEstado, inscrever]. Notifica inscritos ao mudar.
EXEMPLO
const [get, set, sub] = criarEstado(0); const unsub = sub(v => console.log(v)); set(1) → 'novo valor: 1'
SOBRE O CONCEITO
A função criarEstado usa uma closure para manter o estado privado e três funções: obterEstado lê o valor, definirEstado atualiza e notifica, inscrever adiciona um callback e retorna uma função unsubscribe. Erro comum: não chamar os inscritos dentro de definirEstado — sem isso, o estado muda mas ninguém é avisado, tornando a assinatura inútil. Outro erro: não retornar uma função para cancelar a inscrição — sem unsubscribe, os callbacks acumulam e causam vazamento de memória ou efeitos colaterais indesejados.
RESOLUÇÃO