Junior — Middle
Que funcionalidade o padrão Builder fornece no processo de desenvolvimento de objetos?
sobes.tech IA
Resposta da IA
O padrão Builder é utilizado para criar objetos complexos passo a passo com múltiplos parâmetros, especialmente quando um construtor com muitos argumentos é inconveniente ou propenso a erros. Ele separa o processo de construção do objeto de sua representação, permitindo criar diferentes variantes do objeto com o mesmo processo de montagem.
Vantagens principais:
- Melhora a legibilidade do código ao criar objetos com múltiplos parâmetros.
- Permite criar objetos de forma incremental, definindo apenas os parâmetros necessários.
- Elimina a necessidade de múltiplos construtores com diferentes parâmetros (construtor com carrinho).
Exemplo em Java:
public class User {
private String firstName;
private String lastName;
private int age;
private String phone;
private String address;
private User(UserBuilder builder) {
this.firstName = builder.firstName;
this.lastName = builder.lastName;
this.age = builder.age;
this.phone = builder.phone;
this.address = builder.address;
}
public static class UserBuilder {
private String firstName;
private String lastName;
private int age;
private String phone;
private String address;
public UserBuilder setFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public UserBuilder setLastName(String lastName) {
this.lastName = lastName;
return this;
}
public UserBuilder setAge(int age) {
this.age = age;
return this;
}
public UserBuilder setPhone(String phone) {
this.phone = phone;
return this;
}
public UserBuilder setAddress(String address) {
this.address = address;
return this;
}
public User build() {
return new User(this);
}
}
}
// Uso:
User user = new User.UserBuilder()
.setFirstName("Ivan")
.setLastName("Ivanov")
.setAge(30)
.build();