Для чего нужна Model в MVVM

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

Ответ

Модель в MVVM отвечает за данные и бизнес-логику приложения. Она не зависит от View и ViewModel, обеспечивая разделение ответственностей. Модель может:

  • Хранить данные (например, из API или БД)
  • Обрабатывать бизнес-правила (валидация, преобразования)
  • Уведомлять ViewModel об изменениях (через колбэки, RxJava, Flow)

Пример:

data class User(
    val id: Int,
    val name: String,
    val email: String
) {
    fun isValid(): Boolean = email.contains("@")
}

Модель не знает о UI, что упрощает тестирование и переиспользование кода. ViewModel выступает посредником между Model и View.