Sobes.tech
Junior — Middle

Puoi spiegare il principio di funzionamento del pattern 'Builder' e qual è il suo utilizzo principale?

sobes.tech AI

Risposta dell'AI

Il pattern "Builder" viene utilizzato per creare oggetti complessi passo dopo passo, separando il processo di costruzione dalla rappresentazione. Questo permette di creare diverse varianti dell'oggetto usando lo stesso processo di costruzione.

L'idea principale è avere una classe separata (builder) che accumula i parametri e i passaggi per creare l'oggetto, e poi restituisce un'istanza pronta.

Applicazioni:

  • Quando l'oggetto ha molti parametri, specialmente opzionali.
  • Quando è necessario creare oggetti con configurazioni diverse.

Esempio in Swift:

class Car {
    var color: String?
    var seats: Int?
    var engine: String?
}

class CarBuilder {
    private var car = Car()

    func setColor(_ color: String) -> CarBuilder {
        car.color = color
        return self
    }

    func setSeats(_ seats: Int) -> CarBuilder {
        car.seats = seats
        return self
    }

    func setEngine(_ engine: String) -> CarBuilder {
        car.engine = engine
        return self
    }

    func build() -> Car {
        return car
    }
}

// Utilizzo:
// let car = CarBuilder().setColor("Red").setSeats(4).setEngine("V8").build()