Junior — Middle
Ako určiť typ komponentu, ktorý používa Room na ukladanie údajov?
sobes.tech AI
Odpoveď od AI
Komponenta, ktorá používa Room na ukladanie údajov, je zvyčajne súčasťou vrstvy údajov (Data Layer) v architektúre aplikácie. Najčastejšie je to:
- Repository (Úložisko) — trieda, ktorá enkapsuluje logiku prístupu k údajom a komunikuje s DAO Room.
- ViewModel — môže používať repository na získanie údajov a ich poskytovanie UI.
Na určenie typu komponentu je potrebné skontrolovať, či obsahuje:
- Room anotácie (napríklad @Entity, @Dao) — to sú triedy modelu údajov a rozhrania prístupu.
- Logiku práce s databázou cez DAO — to je repository.
Príklad definície:
// DAO — rozhranie pre prístup k údajom
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAllUsers(): LiveData<List<User>>
}
// Repository — trieda, ktorá používa DAO
class UserRepository(private val userDao: UserDao) {
val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}
// ViewModel — poskytuje údaje UI
class UserViewModel(private val repository: UserRepository) : ViewModel() {
val users: LiveData<List<User>> = repository.allUsers
}
Preto komponent s Room je zvyčajne DAO a repository, zatiaľ čo ViewModel je spotrebiteľ týchto údajov.