Repository Pattern
In plain terms
An abstraction that mediates between domain logic and data storage.
Going deeper
The repository pattern provides a collection-like interface for accessing domain objects, hiding database details from business logic. It decouples persistence from the domain.
Under the hood
Lets you swap storage and test logic without a real database; can leak into anemic designs if overused.
Examples
Data access layers, DDD, testable persistence, swapping databases, ORMs.
Think of it like...
Like a librarian you ask for books without knowing how the shelves are organized.