Junior — Middle
Чӣ гуна метавон намунаи Builder-ро дар Kotlin амалӣ кард, бе истифодаи синфҳои иловагӣ?
sobes.tech AI
Ҷавоб аз AI
Котлинда бөлек класс яратмайча, lambda функциялар һәм DSL ысулын кулланып, Builder паттернын тормышка ашырырга мөмкин. Бу, көйләнә алырлык параметрлары булган объектларны кыскарак һәм укылучанрак итеп ясау мөмкинлеген бирә.
Builderны функция һәм apply ярдәмендә тормышка ашыру үрнәге:
class User(var name: String = "", var age: Int = 0)
fun user(block: User.() -> Unit): User {
return User().apply(block)
}
// Куллану:
val newUser = user {
name = "Иван"
age = 30
}
Монда, user функциясе User объекты ясый һәм аңа көйләү блогын куллана, бу классик Builderны күпсанлы set методлары белән алыштыра.
Бу ысул, күпсанлы опциональ параметрлары булган объектларны артык код язунысыз көйләү өчен уңайлы.