Sobes.tech
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.