Sobes.tech
Back to questions
Junior — Middle
69

Можете объяснить, как реализовать архитектурный паттерн Model-View-ViewModel и какие его основные компоненты?

Companies where asked
ЯндексЯндекс

Answer from AI

sobes.tech AI

Архитектурный паттерн Model-View-ViewModel (MVVM) разделяет логику приложения на три основных компонента:

  • Model — отвечает за работу с данными и бизнес-логику. Это могут быть базы данных, сетевые запросы, репозитории.
  • View — UI-компоненты (активити, фрагменты), которые отображают данные и реагируют на действия пользователя.
  • ViewModel — посредник между Model и View. Он содержит логику представления, подготавливает данные для отображения и обрабатывает пользовательские события.

ViewModel обычно использует Observable объекты (например, LiveData в Android), чтобы View могла подписываться на изменения данных и автоматически обновляться.

Пример на Kotlin с использованием LiveData:

class MyViewModel : ViewModel() {
    private val _data = MutableLiveData<String>()
    val data: LiveData<String> = _data

    fun loadData() {
        // Получаем данные из Model (например, репозитория)
        _data.value = "Привет, MVVM!"
    }
}

// В Activity или Fragment
viewModel.data.observe(this) { value ->
    textView.text = value
}