Junior — Middle
Hoe bepaal je het type component dat Room gebruikt voor gegevensopslag?
sobes.tech AI
Antwoord van AI
Een component dat Room gebruikt voor het opslaan van gegevens maakt meestal deel uit van de gegevenslaag (Data Layer) in de architectuur van de applicatie. Meestal is dit:
- Repository — een klasse die de logica voor gegevenstoegang encapsuleert en communiceert met de Room DAO.
- ViewModel — kan de repository gebruiken om gegevens te verkrijgen en deze aan de UI te leveren.
Om het type component te bepalen, moet je kijken of het bevat:
- Room-annotaties (bijvoorbeeld @Entity, @Dao) — dit zijn datamodelklassen en toegangssinterfaces.
- Logica voor werken met de database via de DAO — dit is een repository.
Voorbeeld van een definitie:
// DAO — interface voor gegevenstoegang
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAllUsers(): LiveData<List<User>>
}
// Repository — klasse die de DAO gebruikt
class UserRepository(private val userDao: UserDao) {
val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}
// ViewModel — levert gegevens aan de UI
class UserViewModel(private val repository: UserRepository) : ViewModel() {
val users: LiveData<List<User>> = repository.allUsers
}
Dus, de component met Room is meestal de DAO en de repository, en de ViewModel is een consument van deze gegevens.