O padrão Repository abstrai acesso a dados por trás de uma interface semelhante a uma coleção — separando a lógica de negócio de como os dados são armazenados e recuperados. Ele desacopla a aplicação das fontes de dados (bancos de dados, APIs), melhorando a testabilidade e manutenibilidade.
O que o padrão Repository faz
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
