Sobes.tech
Junior — Middle

Məlumatların saxlanması üçün Room istifadə edən komponentin növünü necə müəyyən etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Room istifadə edərək məlumatların saxlanması üçün istifadə olunan komponent adətən tətbiqin memarlığında Məlumatlar Qatmanı (Data Layer) hissəsidir. Ən çox halda, bu:

  • Repository (Depo) — məlumatlara giriş məntiqini kapsül edən və Room DAO ilə qarşılıqlı əlaqədə olan sinif.
  • ViewModel — məlumatları əldə etmək və UI-ə təqdim etmək üçün repository-dən istifadə edə bilər.

Komponent növünü müəyyən etmək üçün, onun aşağıdakıları ehtiva etdiyinə baxmaq lazımdır:

  • Room annotasiyaları (məsələn, @Entity, @Dao) — bunlar məlumat modeli sinfləri və giriş interfeysləridir.
  • DAO vasitəsilə verilənlər bazası ilə işləmə məntiqi — bu, repository-dir.

Tərif nümunəsi:

// DAO — məlumatlara giriş üçün interfeys
@Dao
interface UserDao {
    @Query("SELECT * FROM users")
    fun getAllUsers(): LiveData<List<User>>
}

// Repository — DAO-dan istifadə edən sinif
class UserRepository(private val userDao: UserDao) {
    val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}

// ViewModel — UI üçün məlumatlar təqdim edir
class UserViewModel(private val repository: UserRepository) : ViewModel() {
    val users: LiveData<List<User>> = repository.allUsers
}

Beləliklə, Room ilə işləyən komponent adətən DAO və repository-dir, və ViewModel bu məlumatların istehlakçısıdır.