Sobes.tech
Junior — Middle

Կարող եք բացատրել Builder դիզայնի ձևանմուշի կոնցեպցիան և դրա առավելությունը:

sobes.tech AI

Պատասխան 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();
}