Junior — Middle
Маалыматтарды сактоо үчүн Room колдонгон компоненттин түрүн кантип аныктоо керек?
sobes.tech AI
AIден жооп
Room колдонуп маалымат сактоочу компонент адатта колдонмонун архитектурасында Маалымат катмары (Data Layer) бөлүмүнүн бир бөлүгү болуп саналат. Көп учурда бул:
- Repository (Repository) — маалыматка жетүүнүн логикасын камтыган жана Room DAO менен өз ара аракеттенген класс.
- ViewModel — ал репозиторийди колдонуп, маалыматтарды алууга жана UIга берүү үчүн колдонулушу мүмкүн.
Компоненттин түрүн аныктоо үчүн, ал төмөнкүлөрдү камтыса керек:
- Room annotations (мисалы, @Entity, @Dao) — бул маалымат моделинин класстары жана жетүү интерфейстери.
- DAO аркылуу базас менен иштөө логикасы — бул репозиторий.
Төмөндө аныктоо мисалы:
// DAO — маалыматка жетүү үчүн интерфейс
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAllUsers(): LiveData<List<User>>
}
// Repository — DAO колдонгон класс
class UserRepository(private val userDao: UserDao) {
val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}
// ViewModel — UIга маалымат берет
class UserViewModel(private val repository: UserRepository) : ViewModel() {
val users: LiveData<List<User>> = repository.allUsers
}
Ошентип, Room менен иштеген компонент көбүнчө DAO жана репозиторий болуп саналат, ал эми ViewModel — бул ушул маалыматтарды колдонуучу.