Sobes.tech
Junior — Middle

Можете ли да обясните принципа на работа на патърна 'Builder' и какво е неговото основно приложение?

sobes.tech AI

Отговор от AI

Моделът "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()