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