Sobes.tech
Junior — Middle

Puoi spiegare il concetto di pattern di progettazione Builder e qual è il suo vantaggio?

sobes.tech AI

Risposta dell'AI

Il pattern di progettazione Builder viene utilizzato per creare oggetti complessi passo dopo passo. Separa il processo di costruzione dell'oggetto dalla sua rappresentazione, consentendo di creare diverse varianti dell'oggetto utilizzando lo stesso processo.

Vantaggi:

  • Permette di creare oggetti con molti parametri, evitando costruttori con un gran numero di argomenti.
  • Migliora la leggibilità e la manutenzione del codice.
  • Permette di creare diverse rappresentazioni dell'oggetto usando lo stesso codice di costruzione.

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