Sobes.tech
Junior — Middle

Czy możesz wyjaśnić zasadę działania wzorca 'Builder' i jakie jest jego główne zastosowanie?

sobes.tech AI

Odpowiedź od AI

Wzorzec "Builder" jest używany do stopniowego tworzenia złożonych obiektów, oddzielając proces konstruowania od prezentacji. Pozwala to na tworzenie różnych wariantów obiektu, korzystając z tego samego procesu budowania.

Główną ideą jest posiadanie osobnej klasy (budowniczy), która gromadzi parametry i kroki tworzenia obiektu, a następnie zwraca gotową instancję.

Zastosowania:

  • Gdy obiekt ma wiele parametrów, szczególnie opcjonalnych.
  • Gdy konieczne jest tworzenie obiektów z różnymi konfiguracjami.

Przykład w 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
    }
}

// Użycie:
// let car = CarBuilder().setColor("Red").setSeats(4).setEngine("V8").build()