El patrón Repository abstrae el acceso a datos detrás de una interfaz similar a una colección — separando la lógica de negocio de cómo se almacenan y recuperan los datos. Desacopla la aplicación de las fuentes de datos (bases de datos, APIs), mejorando la testeabilidad y mantenibilidad.
Qué hace el patrón 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
