Le pattern Repository abstrait l'accès aux données derrière une interface de type collection — séparant la logique métier de la façon dont les données sont stockées et récupérées. Il découple l'application des sources de données (bases de données, APIs), améliorant la testabilité et la maintenabilité.
Ce que le pattern Repository fait
REPOSITORY → an abstraction layer between business logic and DATA ACCESS:
→ provides a clean interface (like a collection: findById, save, delete, findAll)
→ HIDES how/where data is actually stored (database, API, cache, files)
→ business logic uses the repository, NOT the database directly
→ separate WHAT data operations from HOW they're implemented
