Sobes.tech
Junior — Middle

Ինչպես իրականացնել Builder մոդելը Kotlin-ում?

sobes.tech AI

Պատասխան AI-ից

Kotlin-ում Builder ձևանմուշը կարող է իրականացվել ներքին DSL-ով դասի կամ ներսի Builder դասի միջոցով: Սովորաբար օգտագործվում է apply՝ օբյեկտի հարմարավետ կոնֆիգուրացիայի համար:

კლասիկ Builder-ի օրինակ՝ ներսի դասով:

class User private constructor(
    val name: String?,
    val age: Int?
) {
    data class Builder(
        var name: String? = null,
        var age: Int? = null
    ) {
        fun name(name: String) = apply { this.name = name }
        fun age(age: Int) = apply { this.age = age }
        fun build() = User(name, age)
    }
}

// Օգտագործում՝
val user = User.Builder()
    .name("Ivan")
    .age(30)
    .build()

Նույնպես, lambda և apply ֆունկցիաները կարող են օգտագործվել ավելի իդիոմատիկ Kotlin ոճի համար:

data class User(var name: String? = null, var age: Int? = null)

fun user(block: User.() -> Unit) = User().apply(block)

// Օգտագործում՝
val user = user {
    name = "Ivan"
    age = 30
}