Junior — Middle
Можете ли објаснити принцип рада патерна 'Builder' и његову главну примену?
sobes.tech АИ
Одговор од АИ
Моделот "Builder" се користи за постепено создавање на сложени објекти, одвојувајќи го процесот на конструирање од претставувањето. Ова овозможува создавање на различни варијанти на објектот користејќи го истиот процес на изградба.
Главната идеја е да имате посебна класа (градежник), која собира параметри и чекори за создавање на објектот, а потоа враќа готов примерок.
Апликации:
- Кога објектот има многу параметри, особено опционални.
- Кога е потребно да се создадат објекти со различни конфигурации.
Пример во 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
}
}
// Употреба:
// let car = CarBuilder().setColor("Red").setSeats(4).setEngine("V8").build()