Back to questions
Andersen
Junior — Middle
140
Можете объяснить концепцию шаблона проектирования Builder и в чем его преимущество?
Companies where asked
Answer from AI
sobes.tech 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();
}