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.