Sobes.tech
Назад к вопросам
Junior — Middle
70

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

Компании, где спрашивали
Альфа-БанкАльфа-Банк

Ответ от нейросети

sobes.tech 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.

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