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.