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