Back to questions
Альфа-Банк
Junior — Middle
71
Как можно реализовать паттерн Builder в Kotlin, избегая использования дополнительных классов?
Companies where asked
Answer from AI
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.
Такой подход удобен для конфигурирования объектов с множеством опциональных параметров без лишнего кода.