Sobes.tech
Junior — Middle

Môžete vysvetliť rozdiely medzi architektonickými vzormi MVVM, MVI a MVP?

sobes.tech AI

Odpoveď od AI

MVVM (Model-View-ViewModel), MVI (Model-View-Intent) a MVP (Model-View-Presenter) sú architektonické vzory, ktoré pomáhajú organizovať kód v aplikáciách tým, že rozdeľujú zodpovednosť medzi komponenty.

  • MVP: Zobrazenie je zodpovedné za zobrazovanie a prenášanie akcií používateľa k Presenterovi. Presenter obsahuje logiku a aktualizuje zobrazenie. Model predstavuje údaje a obchodnú logiku. Zobrazenie a Presenter sú priamo prepojené.

  • MVVM: Zobrazenie sa pripája k ViewModel prostredníctvom dvojcestného dátového väzby (data binding). ViewModel obsahuje logiku a stav, zatiaľ čo Model údaje. ViewModel nepozná priamo zobrazenie, čo uľahčuje testovanie.

  • MVI: je založené na jednosmernom toku dát. Zobrazenie generuje Intent (zámer používateľa), ktoré sú spracované v Modeli, aktualizujúc stav, ktorý je následne zobrazený vo View. To zjednodušuje správu stavu a robí tok dát predvídateľným.

Príklad v Android MVVM s LiveData:

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

    fun loadData() {
        // načítanie dát
        data.value = "Hello MVVM"
    }
}

// V Activity alebo Fragment
viewModel.data.observe(this) { value ->
    textView.text = value
}