Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ რეპოზიტორის ნიმუშის კონცეფცია და მიზანი პროგრამული უზრუნველყოფის განვითარებაში?

sobes.tech AI

პასუხი AI-სგან

რეპოზიტორის ნიმუში წარმოადგენს აბსტრაქციის ფენას აპლიკაციის ბიზნეს-ლოგიკისა და მონაცემთა წყაროს (მაგალითად, მონაცემთა ბაზის) შორის. იგი კუპსულირებს მონაცემთა წვდომის ლოგიკას და უზრუნველყოფს კომფორტულ ინტერფეისს ობიექტების მიღებისთვის, დამატებისთვის, განახლებისთვის და წაშლისთვის.

ნიმუშის მიზანია:

  • დამალოს მონაცემთა ბაზასთან ან სხვა შენახვის ადგილებთან მუშაობის დეტალები.
  • უზრუნველყოს ერთიანი ინტერფეისი მონაცემებთან მუშაობისთვის.
  • გაადვილოს ტესტირება, საშუალებას აძლევს შეცვალოს რეპოზიტორი მოკებით.

კოტლინში Android-ისთვის მაგალითი:

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)
}

აქ, UserRepository დამალავს UserDao-თან მუშაობის დეტალებს (მაგალითად, Room), და უზრუნველყოფს მარტივ ინტერფეისს დანარჩენი აპლიკაციისთვის.