Junior — Middle
Môžete vysvetliť koncept návrhového vzoru Builder a aká je jeho výhoda?
sobes.tech AI
Odpoveď od AI
Vzor návrhu Builder sa používa na postupné vytváranie zložitých objektov. Oddelí proces konštrukcie objektu od jeho reprezentácie, čo umožňuje vytváranie rôznych variantov objektu pomocou toho istého procesu.
Výhody:
- Umožňuje vytváranie objektov s mnohými parametrami, čím sa vyhýba konštruktorom s veľkým počtom argumentov.
- Zlepšuje čitateľnosť a údržbu kódu.
- Umožňuje vytváranie rôznych reprezentácií objektu pomocou toho istého kódu konštrukcie.
Príklad v 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();
}