JavaScriptObjetosdesafio

Builder pattern

O Builder pattern resolve o problema de criar objetos complexos com muitos parâmetros opcionais, evitando construtores gigantes. Na prática, você vê builders em bibliotecas como jQuery (encadeamento de métodos) e em APIs de configuração (ex.: new HttpClientBuilder().withTimeout(5000).withSSL().build()). Dominar esse padrão torna seu código mais legível e flexível, especialmente quando um objeto pode ser montado de várias formas.

O PROBLEMA

Implemente Builder para Pedido com métodos encadeáveis: setProduto, setQuantidade, build.

EXEMPLO

criarPedidoBuilder().setProduto('TV',2000).setQuantidade(2).build()
→ {produto:'TV', total:3650}

SOBRE O CONCEITO

O Builder pattern separa a construção de um objeto da sua representação final. Aqui, o builder é um objeto que acumula dados via métodos encadeáveis, cada método retorna o próprio builder (return this) para permitir a chamada em sequência. O erro comum é esquecer de retornar this, o que quebra o encadeamento — ao invés de retornar o builder, o método retorna undefined, gerando erro ao tentar chamar o próximo método. O método build() finaliza e retorna o objeto pedido com os dados coletados e calcula o total (por exemplo, preço * quantidade com desconto). Como não é permitido usar loops, você pode usar throw para validar se os campos obrigatórios foram preenchidos antes de construir.

RESOLUÇÃO

Mais exercícios de Objetos

JSO011 · IntermediárioFactory functionJSO001 · BásicoCriar objeto simplesJSO003 · BásicoMétodo no objetoJSO006 · BásicoDesestruturação de objeto
Ver todos os exercícios de JavaScript