Junior — Middle
Можете ли да обясните концепцията за шаблона за дизайн Builder и какво е неговото предимство?
sobes.tech AI
Отговор от AI
Шаблонът за дизайн Builder се използва за стъпково създаване на сложни обекти. Той отделя процеса на конструиране на обекта от неговото представяне, позволявайки създаването на различни варианти на обекта, използвайки един и същи процес.
Предимства:
- Позволява създаването на обекти с множество параметри, като избягва конструктор с голям брой аргументи.
- Подобрява четливостта и поддръжката на кода.
- Позволява създаването на различни представяния на обекта, използвайки един и същи код за изграждане.
Пример на 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();
}