Sobes.tech
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()