Junior — Middle
Room kullanarak veri saklama için bileşen türünü nasıl belirlenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Room kullanarak veri depolayan bir bileşen genellikle uygulamanın mimarisinde Veri Katmanı (Data Layer) bölümünün bir parçasıdır. En sık olarak, bu:
- Depo (Repository) — veri erişim mantığını kapsülleyen ve Room DAO ile etkileşime geçen bir sınıftır.
- ViewModel — verileri almak ve UI'ye sağlamak için depo kullanabilir.
Bileşen türünü belirlemek için, şunları içerip içermediğine bakmak gerekir:
- Room anotasyonları (örneğin, @Entity, @Dao) — bunlar veri modeli sınıfları ve erişim arayüzleridir.
- DAO aracılığıyla veritabanı ile çalışma mantığı — bu bir depodur.
Tanım örneği:
// DAO — veri erişimi için arayüz
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAllUsers(): LiveData<List<User>>
}
// Depo — DAO'yu kullanan sınıf
class UserRepository(private val userDao: UserDao) {
val allUsers: LiveData<List<User>> = userDao.getAllUsers()
}
// ViewModel — UI'ye veri sağlar
class UserViewModel(private val repository: UserRepository) : ViewModel() {
val users: LiveData<List<User>> = repository.allUsers
}
Dolayısıyla, Room ile ilgili bileşen genellikle DAO ve depodur, ve ViewModel bu verilerin tüketicisidir.