Sobes.tech
Junior — Middle

Jak určit typ komponenty, která používá Room pro ukládání dat?

sobes.tech AI

Odpověď od AI

Komponenta, která používá Room pro ukládání dat, je obvykle součástí vrstvy dat (Data Layer) v architektuře aplikace. Nejčastěji se jedná o:

  • Repository (Úložiště) — třídu, která zapouzdřuje logiku přístupu k datům a komunikuje s DAO Room.
  • ViewModel — může používat repository k získání dat a jejich poskytování uživatelskému rozhraní.

Pro určení typu komponenty je třeba zkontrolovat, zda obsahuje:

  • Anotace Room (například @Entity, @Dao) — to jsou třídy modelu dat a rozhraní přístupu.
  • Logiku práce s databází přes DAO — to je repository.

Příklad definice:

// DAO — rozhraní pro přístup k datům
@Dao
interface UserDao {
    @Query("SELECT * FROM users")
    fun getAllUsers(): LiveData<List<User>>
}

// Repository — třída využívající DAO
class UserRepository(private val userDao: UserDao) {
    val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}

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

Tedy komponenta s Room je obvykle DAO a repository, zatímco ViewModel je spotřebitel těchto dat.