DEV Community

Paula Santana
Paula Santana

Posted on • Edited on

6 1

Java Efetivo Essencial- Builder

Cogite o uso de um Builder quando se deparar com muitos parâmetros no construtor

Esta é uma série baseada no entendimento de tópicos relacionados ao livro com foco no resumo.

Entendendo...

Quem nunca precisou construir um objeto que tinha muitos parâmetros? Aliás o que será muitos? Bom existem muitas discussões de quanto seria essa quantidade, eu costumo a usar o nº 5 como fator decisivo e analisar se o objeto tem perspectiva de crescimento, se sim eu já cogito criar um Builder.

Por quê?

Quando construimos um objeto com muitos parâmetros estamos sujeitos a passarmos parâmetros errados, especialmente se o tipo deles for semelhante.
Além de ser difícil de escrever, é difícil de ler construtores com muitos parâmetros.

O que é?

Builder é um padrão de design de código do tipo criacional.
No java podemos criar um Builder dentro de nossa classe e tornar a criação do objeto mais simples e a leitura do código melhor, principalmente quando envolve muitos parâmetros e parâmetros opcionais, o que evita termos sobrecarga de construotres, quem nunca viu objetos com vários tipos de construtores?

Principais Vantagens

  • Esse padrão se adequa bem a heiraquia de classe;
  • Facilidade em lidar com parâmetros obrigatórios e não obrigatórios;
  • É flexível, uma implementação de Builder nos permite criar várias instâncias diferentes da mesma classe;

Desvantagens

  • Sempre teremos que criar um Builder para criar um objeto, embora de que talvez não seja algo que impacte em um alto custo de performance;
  • É um padrão mais verboso;
  • É uma implementação mais difícil que uso de construtores e o padrão telescoping;

Conclusão

  • Verifique se realmente vale a pena utilizar esse padrão;
  • Nada impede de você começar com construtor e em caso de seu objeto crescer com o tempo que ajuste o código para utilizar esse pattern;

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up