Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot Builder dizaina modeļa koncepciju un tā priekšrocības?

sobes.tech AI

Atbilde no AI

Būvētāja dizaina paraugs tiek izmantots, lai pakāpeniski izveidotu sarežģītus objektus. Tas atdala objekta būvniecības procesu no tā attēlojuma, ļaujot izmantot to pašu procesu, lai izveidotu dažādas objekta variācijas.

Priekšrocības:

  • ļauj izveidot objektus ar daudzām parametru, izvairoties no konstruktoru ar lielu argumentu skaitu.
  • uzlabo koda lasāmību un uzturēšanu.
  • ļauj izveidot dažādas objekta attēlojumus, izmantojot to pašu būvniecības kodu.

Dart (Flutter) piemērs:

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();
}