Sobes.tech
Junior — Middle

MVVM, MVI və MVP memarlıq nümunələri arasındakı fərqləri izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

MVVM (Model-View-ViewModel), MVI (Model-View-Intent) və MVP (Model-View-Presenter) memarlıq nümunələridir və tətbiqlərdə kodu təşkil etməyə, komponentlər arasında məsuliyyəti bölməyə kömək edir.

  • MVP: View istifadəçi fəaliyyətlərini göstərir və Presenter-ə ötürür. Presenter məntiqi ehtiva edir və View-i yeniləyir. Model məlumatları və biznes məntiqini təmsil edir. View və Presenter birbaşa əlaqəlidir.

  • MVVM: View iki tərəfli məlumat bağlaması (data binding) vasitəsilə ViewModel-ə qoşulur. ViewModel məntiq və vəziyyəti ehtiva edir, Model isə məlumatları. ViewModel birbaşa View-i tanımır, bu da test etməyi asanlaşdırır.

  • MVI: unidireksional məlumat axınına əsaslanır. View istifadəçi niyyətlərini (Intent) yaradır, bunlar Model-də işlənir və vəziyyəti yeniləyir, sonra isə View-də göstərilir. Bu, vəziyyət idarəsini sadələşdirir və məlumat axını proqnozlaşdırıla bilər edir.

Android MVVM nümunəsi ilə LiveData:

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

    fun loadData() {
        // məlumatların yüklənməsi
        data.value = "Hello MVVM"
    }
}

// Activity və ya Fragment-də
viewModel.data.observe(this) { value ->
    textView.text = value
}