Назад к вопросам
Альфа-Банк
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.
Такой подход удобен для конфигурирования объектов с множеством опциональных параметров без лишнего кода.