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)