Sobes.tech
Junior — Middle

Ποιες προσεγγίσεις και υλοποιήσεις του μοτίβου ViewModel γνωρίζεις;

sobes.tech AI

Απάντηση από AI

Το πρότυπο ViewModel στο Android χρησιμοποιείται για την αποθήκευση και διαχείριση δεδομένων 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()