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

В Kotlin можно реализовать паттерн Builder без создания отдельного класса, используя функции с лямбдами и DSL-подход. Это позволяет создавать объекты с настраиваемыми параметрами более компактно и читаемо.

Короткий ответ

Что ответить на собеседовании

В Kotlin можно реализовать паттерн Builder без создания отдельного класса, используя функции с лямбдами и DSL-подход. Это позволяет создавать объекты с настраиваемыми параметрами более компактно и читаемо.

Подробный разбор

Ответ с пояснениями

В 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.

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку