Что такое Model в архитектурных паттернах

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

Ответ

Модель (Model) — это компонент, отвечающий за данные и бизнес-логику приложения. Она не зависит от UI и обрабатывает хранение, валидацию, преобразование и загрузку данных. В MVVM или MVC модель уведомляет представление/ViewModel об изменениях (например, через LiveData, Flow или колбэки).

Пример:

data class User(
    val id: Int,
    val name: String,
    val email: String
)

class UserRepository {
    suspend fun fetchUser(): User {
        // Загрузка данных из сети/БД
        return User(1, "Alex", "alex@example.com")
    }
}

Ключевые аспекты:

  • Изолирована от View/ViewModel.
  • Может содержать репозитории, DAO, API-клиенты.
  • Инкапсулирует правила валидации и преобразования данных.

Модель часто реализуется с использованием Repository или UseCase для разделения ответственностей.