JavaScriptPOOavancado

Framework mini ORM com classes

Em aplicações reais, você frequentemente precisa interagir com bancos de dados sem escrever SQL repetitivo. O padrão Active Record, usado por frameworks como Rails e Laravel, encapsula operações de banco em métodos da própria classe, como findAll() ou create(). Dominar esse padrão com classes JavaScript te prepara para construir camadas de dados reutilizáveis e desacopladas, sem depender de bibliotecas externas.

O PROBLEMA

Implemente mini ORM: Model com static create, findAll, findById, update, delete. Usuario extends Model.

EXEMPLO

const ana = Usuario.create({nome:"Ana", email:"ana@ok.com"});
Usuario.findAll() → [{id:1, nome:"Ana",...}]

SOBRE O CONCEITO

Um mini ORM implementa o padrão Active Record: cada classe de modelo (ex.: Usuario) estende uma classe base Model que define métodos estáticos (create, findAll, findById, update, delete). O erro comum é chamar métodos de instância em contextos estáticos ou esquecer de herdar o repositório (a lista de dados) corretamente. Métodos estáticos operam na classe, não nas instâncias, e acessam um array compartilhado via this (referente à classe). Por exemplo, Usuario.create() deve instanciar Usuario e adicioná-lo ao array estático. Já métodos de instância, como save(), não são usados aqui; todo acesso é via classe, reforçando que static não pode misturar com this de instância. O repositório (array) deve ser herdado via extends e acessado com this.registros dentro do método estático da classe filha.

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