Junior — Middle
Kaip įgyvendinti Builder modelį Kotlin'e, vengiant papildomų klasių naudojimo?
sobes.tech AI
Atsakymas iš 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.
Такой подход удобен для конфигурирования объектов с множеством опциональных параметров без лишнего кода.