Sobes.tech
Junior — Middle

Ի՞նչ մոտեցումներ և իրականացման մեթոդներ գիտեք ViewModel ձևանմուշի մասին։

sobes.tech AI

Պատասխան AI-ից

Android-ում ViewModel մոդելը օգտագործվում է UI տվյալների պահպանում և կառավարում համար՝ հաշվի առնելով բաղադրիչների, ինչպիսիք են Activity կամ Fragment, կյանքի ցիկլը: Հիմնական մոտեցումներ և իրագործումներ՝

  • Android Architecture Components ViewModel — androidx.lifecycle գրադարանի դաս, որը թույլ է տալիս պահել տվյալները Activity/Fragment նորից ստեղծելիս (օրինակ՝ էկրանին պտտվելու ժամանակ): ViewModel-ը ապրում է այնքան ժամանակ, քանի դեռ կենդանի է UI բաղադրիչը:

  • ViewModel LiveData-ով — հաճախ, ViewModel-ը պարունակում է LiveData, որպեսզի ավտոմատ կերպով թարմացնի UI-ն տվյալների փոփոխության դեպքում:

  • Անհատական ViewModel — կարող եք իրագործել սեփական ViewModel մոդելը, առանձնացնել տրամաբանությունը և տվյալները UI-ից, բայց առանց AndroidX-ի, օրինակ՝ մաքուր MVVM-ում:

Օրինակ՝ օգտագործելով ստանդարտ ViewModel-ը և LiveData- ն:

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

    fun loadData() {
        // տվյալների բեռնում, օրինակ՝ ռեպոզիտորից
        _data.value = "Օրինակային տվյալներ"
    }
}

// Activity կամ Fragment-ում
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
    textView.text = value
}
viewModel.loadData()