Sobes.tech
Junior — Middle

Comment déterminer le type de composant utilisant Room pour stocker des données?

sobes.tech IA

Réponse de l'IA

Un composant utilisant Room pour stocker des données fait généralement partie de la couche de données (Data Layer) dans l'architecture de l'application. Le plus souvent, il s'agit de :

  • Répertoire (Repository) — une classe qui encapsule la logique d'accès aux données et interagit avec le DAO de Room.
  • ViewModel — peut utiliser le répertoire pour obtenir des données et les fournir à l'interface utilisateur.

Pour déterminer le type de composant, il faut vérifier s'il contient :

  • Annotations Room (par exemple, @Entity, @Dao) — ce sont des classes de modèle de données et des interfaces d'accès.
  • Logique de travail avec la base via le DAO — c'est un répertoire.

Exemple de définition :

// DAO — interface pour accéder aux données
@Dao
interface UserDao {
    @Query("SELECT * FROM users")
    fun getAllUsers(): LiveData<List<User>>
}

// Répertoire — classe utilisant le DAO
class UserRepository(private val userDao: UserDao) {
    val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}

// ViewModel — fournit des données à l'UI
class UserViewModel(private val repository: UserRepository) : ViewModel() {
    val users: LiveData<List<User>> = repository.allUsers
}

Ainsi, le composant avec Room est généralement le DAO et le répertoire, et la ViewModel consomme ces données.