ORM simples
Em sistemas reais, muitas vezes você precisa gerenciar coleções de dados em memória sem um banco de dados. O padrão Repository, implementado com closures, encapsula o armazenamento e fornece operações CRUD padronizadas. Dominar essa técnica permite criar protótipos funcionais e código testável que imita comportamentos de banco de dados.
O PROBLEMA
Crie criarTabela() com inserir, buscar, atualizar, deletar, listarTodos.
EXEMPLO
const usuarios = criarTabela("usuarios");
usuarios.inserir({nome:"Ana"}) → {id:1,nome:"Ana"}SOBRE O CONCEITO
A função criarTabela cria uma closure que mantém um array tabela e um contador idCounter. Cada método retornado (inserir, buscar, etc.) acessa esses dados encapsulados. Para inserir, você deve usar const novo = { ...dados, id: idCounter++ } e adicioná-lo ao array. O erro comum de não gerar um id único quebra a integridade dos dados: sem um identificador exclusivo, não é possível atualizar ou deletar registros específicos. Use find para buscar por id, filter para deletar, e map para atualizar. Lembre-se de retornar uma cópia ou referência adequada; o uso de ...spread é permitido para criar novos objetos.
RESOLUÇÃO