Modelul Repository abstractizează accesul la date în spatele unei interfețe de tip colecție — separând logica de afaceri de modul în care datele sunt stocate și recuperate. Decuplează aplicația de sursele de date (baze de date, API-uri), îmbunătățind testabilitatea și mentenabilitatea.
Ce face modelul Repository
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
