Existe uma forma para remover esse tanto de IF's dentro do construtor?
Existe uma forma para remover esse tanto de IF's dentro do construtor?
Olá Oswaldo, tudo bem?
Entendo sua preocupação em relação à quantidade de IF's dentro do construtor. Uma forma de remover essa quantidade de IF's é utilizando o padrão de projeto chamado "Builder". Com ele, é possível criar objetos complexos passo a passo, sem a necessidade de usar vários construtores.
O padrão Builder consiste em criar uma classe Builder que recebe os valores necessários para construir o objeto e, em seguida, retorna o objeto desejado. Dessa forma, é possível criar um objeto com diversos atributos sem precisar passar todos eles no construtor.
Veja um exemplo de como utilizar o padrão Builder:
public class Pessoa {
private String nome;
private int idade;
private String endereco;
public static class Builder {
private String nome;
private int idade;
private String endereco;
public Builder nome(String nome) {
this.nome = nome;
return this;
}
public Builder idade(int idade) {
this.idade = idade;
return this;
}
public Builder endereco(String endereco) {
this.endereco = endereco;
return this;
}
public Pessoa build() {
return new Pessoa(this);
}
}
private Pessoa(Builder builder) {
this.nome = builder.nome;
this.idade = builder.idade;
this.endereco = builder.endereco;
}
}
Dessa forma, é possível criar um objeto Pessoa passando apenas os atributos necessários:
Pessoa pessoa = new Pessoa.Builder()
.nome("João")
.idade(30)
.build();
Espero ter ajudado e bons estudos!
Mas caso eu não saiba qual vai ser o atributo que vira null? Por exemplo em um caso onde eu consumo uma outra aplicação