Junior — Middle
El tudná magyarázni a Builder tervezési minta fogalmát és annak előnyét?
sobes.tech MI
Válasz az MI-től
A Builder tervezési minta lépésről lépésre használható összetett objektumok létrehozására. Elkülöníti az objektum építési folyamatát a reprezentációjától, lehetővé téve ugyanazon folyamat használatát különböző változatok létrehozására.
Előnyök:
- Lehetővé teszi több paraméterrel rendelkező objektumok létrehozását, elkerülve a sok argumentummal rendelkező konstruktorokat.
- Javítja a kód olvashatóságát és karbantarthatóságát.
- Ugyanazt a konstrukciós kódot használva különböző objektum-reprezentációkat lehet létrehozni.
Dart (Flutter) példa:
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();
}