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.