DEV Community

Paula Santana
Paula Santana

Posted on • Edited on

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;

Top comments (0)