Junior — Middle
Kuidas määrata komponendi tüüp, mis kasutab andmete salvestamiseks Roomi?
sobes.tech AI
Vastus AI-lt
Komponent, mis kasutab Roomi andmete salvestamiseks, on tavaliselt osa andmekihist (Data Layer) rakenduse arhitektuuris. Enamasti on see:
- Repository (Andmehoidla) — klass, mis kapseldab andmetele juurdepääsu loogika ja suhtleb Room DAO-ga.
- ViewModel — võib kasutada repository-d andmete saamiseks ja nende UI-le edastamiseks.
Komponendi tüübi määramiseks tuleb kontrollida, kas see sisaldab:
- Room annotatsioone (näiteks, @Entity, @Dao) — need on andmemudeli klassid ja juurdepääsu liidesed.
- Loogikat andmebaasiga töötamiseks DAO kaudu — see on repository.
Näide definitsioonist:
// DAO — andmetele juurdepääsu liides
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAllUsers(): LiveData<List<User>>
}
// Repository — klass, mis kasutab DAO-d
class UserRepository(private val userDao: UserDao) {
val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}
// ViewModel — pakub andmeid UI-le
class UserViewModel(private val repository: UserRepository) : ViewModel() {
val users: LiveData<List<User>> = repository.allUsers
}
Seega, Room-iga töötav komponent on tavaliselt DAO ja repository, ning ViewModel on nende andmete tarbija.