Sobes.tech
Junior — Middle

Kako odrediti tip komponente koja koristi Room za skladištenje podataka?

sobes.tech АИ

Одговор од АИ

Komponenta koja koristi Room za skladištenje podataka obično je deo sloja podataka (Data Layer) u arhitekturi aplikacije. Najčešće je to:

  • Repository (Repozitorijum) — klasa koja enkapsulira logiku pristupa podacima i komunicira sa Room DAO.
  • ViewModel — može koristiti repositarijum za dobijanje podataka i njihovo pružanje UI.

Da biste odredili tip komponente, potrebno je da proverite da li sadrži:

  • Room anotacije (npr. @Entity, @Dao) — to su klase modela podataka i interfejsi za pristup.
  • Logiku rada sa bazom putem DAO — to je repositarijum.

Primer definicije:

// DAO — interfejs za pristup podacima
@Dao
interface UserDao {
    @Query("SELECT * FROM users")
    fun getAllUsers(): LiveData<List<User>>
}

// Repozitorijum — klasa koja koristi DAO
class UserRepository(private val userDao: UserDao) {
    val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}

// ViewModel — pruža podatke UI
class UserViewModel(private val repository: UserRepository) : ViewModel() {
    val users: LiveData<List<User>> = repository.allUsers
}

Dakle, komponenta sa Room je obično DAO i repositarijum, a ViewModel je potrošač tih podataka.