Sobes.tech
Junior — Middle

Můžete vysvětlit koncept a účel vzoru repository ve vývoji softwaru?

sobes.tech AI

Odpověď od AI

Vzor repository je vrstva abstrakce mezi obchodní logikou aplikace a zdrojem dat (například databází). Zapouzdřuje logiku přístupu k datům a poskytuje pohodlné rozhraní pro získávání, přidávání, aktualizaci a mazání objektů.

Účel vzoru:

  • Skrýt detaily práce s databází nebo jinými úložišti.
  • Poskytnout jednotné rozhraní pro práci s daty.
  • Zjednodušit testování tím, že umožní nahradit repository mocky.

Příklad v Kotlinu pro 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)
}

Zde UserRepository skrývá detaily práce s UserDao (například Room) a poskytuje jednoduché rozhraní pro zbytek aplikace.