Junior — Middle
Meg tudná magyarázni a 'Builder' mintázat működési elvét és fő alkalmazását?
sobes.tech MI
Válasz az MI-től
A "Builder" minta olyan összetett objektumok lépésről lépésre történő létrehozására szolgál, amely elválasztja az építési folyamatot a megjelenítéstől. Ez lehetővé teszi, hogy ugyanazt az építési folyamatot használva különböző változatokat hozzunk létre az objektumból.
A fő ötlet, hogy legyen egy külön osztály (építő), amely összegyűjti az objektum létrehozásához szükséges paramétereket és lépéseket, majd visszaad egy kész példányt.
Alkalmazások:
- Amikor az objektumnak sok paramétere van, különösen opcionális.
- Amikor különböző konfigurációjú objektumokat kell létrehozni.
Swift példával:
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
}
}
// Használat:
// let car = CarBuilder().setColor("Red").setSeats(4).setEngine("V8").build()