Junior — Middle
Ar galite paaiškinti 'Builder' šablono veikimo principą ir jo pagrindinį taikymą?
sobes.tech AI
Atsakymas iš AI
"Builder" šablonas naudojamas sudėtingų objektų kūrimui etapais, atskiriant konstravimo procesą nuo reprezentacijos. Tai leidžia naudoti tą patį konstravimo procesą kurti skirtingas objekto variacijas.
Pagrindinė idėja yra turėti atskirą klasę (konstruktorius), kuri kaupia parametrus ir žingsnius objekto kūrimui, o tada grąžina paruoštą egzempliorių.
Pritaikymas:
- Kai objektas turi daug parametrų, ypač neprivalomų.
- Kai reikia kurti objektus su skirtingomis konfigūracijomis.
Pavyzdys 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
}
}
// Naudojimas:
// let car = CarBuilder().setColor("Red").setSeats(4).setEngine("V8").build()