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.