Sobes.tech
Junior — Middle

Ar galite paaiškinti 'Builder' šablono veikimo principą ir jo pagrindinį taikymą?

sobes.tech AI

Atsakymas iš AI

"Builder" šablonas naudojamas sudėtingų objektų kūrimui etapais, atskiriant konstravimo procesą nuo reprezentacijos. Tai leidžia naudoti tą patį konstravimo procesą kurti skirtingas objekto variacijas.

Pagrindinė idėja yra turėti atskirą klasę (konstruktorius), kuri kaupia parametrus ir žingsnius objekto kūrimui, o tada grąžina paruoštą egzempliorių.

Pritaikymas:

  • Kai objektas turi daug parametrų, ypač neprivalomų.
  • Kai reikia kurti objektus su skirtingomis konfigūracijomis.

Pavyzdys 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
    }
}

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