Junior — Middle
Proqram təminatı inkişafında repository nümunəsinin konsepsiyasını və məqsədini izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Repository naxşı, tətbiqin biznes məntiqi ilə məlumat mənbəyi (məsələn, verilənlər bazası) arasında abstraksiya qatıdır. O, məlumatlara giriş məntiqini kapsülləyir və obyektləri almaq, əlavə etmək, yeniləmək və silmək üçün rahat interfeys təmin edir.
Naxşın məqsədi:
- Verilənlər bazası və ya digər saxlama yerləri ilə işləmənin detalları gizlətmək.
- Məlumatlarla işləmək üçün vahid interfeys təmin etmək.
- Testləri sadələşdirmək, repository-ni mock-larla əvəz etməyə imkan vermək.
Kotlin üçün Android nümunəsi:
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)
}
Burada, UserRepository UserDao ilə işləmənin detalları gizlədir (məsələn, Room) və tətbiqin qalan hissəsi üçün sadə interfeys təmin edir.