Sobes.tech
Back to questions
Junior — Middle
74

Можете объяснить принцип работы паттерна 'Builder' и в чем его основное применение?

Answer from AI

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