Sobes.tech
Junior — Middle

Hogyan valósítható meg a Builder minta Kotlinben, anélkül, hogy további osztályokat használnánk?

sobes.tech MI

Válasz az MI-től

Kotlinban megvalósítható a Builder minta külön osztály létrehozása nélkül, lambdákkal és DSL megközelítéssel. Ez lehetővé teszi az objektumok konfigurálható paramétereinek rövidebb és olvashatóbb módon történő létrehozását.

Példa a Builder megvalósítására egy függvény és az apply használatával:

class User(var name: String = "", var age: Int = 0)

fun user(block: User.() -> Unit): User {
    return User().apply(block)
}

// Használat:
val newUser = user {
    name = "Иван"
    age = 30
}

Itt a user függvény létrehoz egy User objektumot és alkalmaz egy konfigurációs blokkot, ami helyettesíti a klasszikus Builder-t sok set metódussal.

Ez a megközelítés hasznos, ha sok opcionális paraméterrel rendelkező objektumokat szeretnénk konfigurálni felesleges kód írása nélkül.