Junior — Middle
Can you explain the concept of the Builder design pattern and its advantages?
sobes.tech AI
Answer from AI
The Builder design pattern is used for step-by-step creation of complex objects. It separates the construction process of an object from its representation, allowing different variations of the object to be created using the same process.
Advantages:
- Allows creating objects with many parameters, avoiding constructors with a large number of arguments.
- Improves code readability and maintainability.
- Enables creating different representations of an object using the same construction code.
Example in 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();
}