Как делал Builder в Kotlin

«Как делал Builder в Kotlin» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Kotlin можно реализовать Builder через DSL или классический подход с вложенным классом. Вот пример классического Builder:

class Car private constructor(
    val model: String,
    val color: String,
    val year: Int
) {
    class Builder {
        private var model: String = ""
        private var color: String = "white"
        private var year: Int = 2020

        fun setModel(model: String) = apply { this.model = model }
        fun setColor(color: String) = apply { this.color = color }
        fun setYear(year: Int) = apply { this.year = year }

        fun build() = Car(model, color, year)
    }
}

// Использование:
val car = Car.Builder()
    .setModel("Tesla")
    .setColor("red")
    .setYear(2023)
    .build()

Ключевые моменты:

  • Основной класс с private constructor
  • Вложенный Builder класс с публичными методами
  • Методы возвращают this (через apply) для чейнинга
  • Финальный метод build() создает объект