Sobes.tech
Junior — Middle

Meg tudná magyarázni a 'Builder' mintázat működési elvét és fő alkalmazását?

sobes.tech MI

Válasz az MI-től

A "Builder" minta olyan összetett objektumok lépésről lépésre történő létrehozására szolgál, amely elválasztja az építési folyamatot a megjelenítéstől. Ez lehetővé teszi, hogy ugyanazt az építési folyamatot használva különböző változatokat hozzunk létre az objektumból.

A fő ötlet, hogy legyen egy külön osztály (építő), amely összegyűjti az objektum létrehozásához szükséges paramétereket és lépéseket, majd visszaad egy kész példányt.

Alkalmazások:

  • Amikor az objektumnak sok paramétere van, különösen opcionális.
  • Amikor különböző konfigurációjú objektumokat kell létrehozni.

Swift példával:

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

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