Junior — Middle
Pode explicar o conceito do padrão de projeto Builder e qual é a sua vantagem?
sobes.tech IA
Resposta da IA
O padrão de design Builder é utilizado para criar objetos complexos passo a passo. Ele separa o processo de construção do objeto de sua representação, permitindo criar diferentes variantes do objeto usando o mesmo processo.
Vantagens:
- Permite criar objetos com múltiplos parâmetros, evitando construtores com um grande número de argumentos.
- Melhora a legibilidade e a manutenção do código.
- Permite criar diferentes representações do objeto usando o mesmo código de construção.
Exemplo em Dart (Flutter):
class Pizza {
final String dough;
final String sauce;
final String topping;
Pizza._builder(PizzaBuilder builder)
: dough = builder.dough,
sauce = builder.sauce,
topping = builder.topping;
}
class PizzaBuilder {
String dough = '';
String sauce = '';
String topping = '';
PizzaBuilder setDough(String dough) {
this.dough = dough;
return this;
}
PizzaBuilder setSauce(String sauce) {
this.sauce = sauce;
return this;
}
PizzaBuilder setTopping(String topping) {
this.topping = topping;
return this;
}
Pizza build() {
return Pizza._builder(this);
}
}
void main() {
var pizza = PizzaBuilder()
.setDough('Thin crust')
.setSauce('Tomato')
.setTopping('Cheese')
.build();
}