Sobes.tech
Junior — Middle

Как да реализираме патърна Builder в Kotlin, като избягваме използването на допълнителни класове?

sobes.tech AI

Отговор от AI

В Kotlin може да се реализира патърнът Builder без създаване на отделен клас, използвайки функции с ламбда и DSL подход. Това позволява създаването на обекти с конфигурируеми параметри по-компактно и четливо.

Пример за реализиране на 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 методи.

Този подход е удобен за конфигуриране на обекти с множество опционални параметри без излишен код.