Junior — Middle
190
Можете объяснить концепцию шаблона проектирования Builder и в чем его преимущество?
Сұралған компаниялар
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();
}