Repository
Mediates between the domain and data mapping layers, acting like an in-memory domain object collection. Centralizes data access logic and improves testability.
Repository: Abstract the Data Layer
A collection-like interface over persistence so the domain never talks to the database.
Repository in Production: ORMs and Data Mappers
ORM repositories, query objects, and read models for reports.
Advanced Repository: Specifications and Data Mappers
Specification objects for complex queries, and mapper patterns for rich domains.
Repository: Review & Mastery Quiz
Scenario questions on abstractions, ORMs, and specifications.
Free Books & Guides
Refactoring.Guru — Repository
The definitive modern guide to the Repository pattern. Clear explanations, UML diagrams, real-world analogies, and code examples in multiple languages.
SourceMaking — Repository
A comprehensive companion guide covering the Repository pattern with detailed rules of thumb, criticisms, and robust code snippets.
GoF Design Patterns — Repository
The original Gang of Four book describing the pattern. Available in the "Design Patterns: Elements of Reusable Object-Oriented Software" on Wikipedia.
Official Documentation
Video Courses
freeCodeCamp — Design Patterns Course
A comprehensive multi-hour video course covering all major design patterns with implementations in JavaScript and TypeScript.
Design Patterns in Modern JavaScript Playlist
YouTube playlist covering creational, structural, and behavioral patterns with clear code walkthroughs.
Web Dev Simplified — Repository
Clear, concise video tutorials covering design patterns with practical examples.
Practice & Examples
Awesome Low-Level Design (GitHub)
A curated collection of free LLD resources, pattern implementations, and interview problems across multiple languages.
Design Patterns Implementation (GitHub)
The most popular open-source collection of design pattern implementations with detailed explanations.
Refactoring.Guru Examples in Repository
Code examples of the Repository pattern in TypeScript, Python, Java, and more.

