Сопоставление Middle Классы, data и sealed обновлено

Какой вид класса выбрать

Вопрос

Сопоставь задачу и подходящую конструкцию Kotlin.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Sealed для вариантов с разными данными и полным when. Enum для фиксированного набора однотипных синглтонов. object для синглтона. data class генерирует equals, hashCode, copy. value class оборачивает примитив, не создавая объект в большинстве мест.

Правильные пары

Состояние экрана с разными данными у вариантов
sealed interface
Набор одинаковых констант с кодом
enum class
Единственный экземпляр на всё приложение
object
DTO с equals по содержимому
data class
Типобезопасный id без накладных расходов
value class

Разбор

Sealed для вариантов с разными данными и полным when. Enum для фиксированного набора однотипных синглтонов. object для синглтона. data class генерирует equals, hashCode, copy. value class оборачивает примитив, не создавая объект в большинстве мест.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.