Sobes.tech
Junior — Middle

Dasturiy ta'minot ishlab chiqishda repository shablonining konsepti va maqsadini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Repository naqshoni - bu biznes-mantiq va ma'lumot manbasi (masalan, ma'lumotlar bazasi) o'rtasidagi abstraktsiya qatlamidir. U ma'lumotlarga kirish mantiqini inkapsulyatsiya qiladi, obyektlarni olish, qo'shish, yangilash va o'chirish uchun qulay interfeys taqdim etadi.

Naqshning maqsadi:

  • Ma'lumotlar bazasi yoki boshqa saqlash joylari bilan ishlash tafsilotlarini yashirish.
  • Ma'lumotlar bilan ishlash uchun yagona interfeys taqdim etish.
  • Testlarni soddalashtirish, repository'ni mock'lar bilan almashtirish imkonini berish.

Kotlin uchun Android misoli:

interface UserRepository {
    fun getUserById(id: Int): User?
    fun addUser(user: User)
}

class UserRepositoryImpl(private val userDao: UserDao) : UserRepository {
    override fun getUserById(id: Int): User? = userDao.findById(id)
    override fun addUser(user: User) = userDao.insert(user)
}

Bu yerda UserRepository UserDao bilan ishlash tafsilotlarini yashiradi (masalan, Room), va qolgan dastur uchun oddiy interfeys taqdim etadi.