Repository
Architecture 🟡 MidDéfinition
Abstrait l'accès aux données en encapsulant la logique de persistance derrière une interface de collection. Le domaine ignore la source de données.
Analogie
Une bibliothécaire : tu demandes un livre par titre, elle sait ou le trouver sans que tu connaisses le système de classement.
Exemple de code
class UserRepo {
async findById(id) { return db.users.findOne({ id }); }
async save(user) { return db.users.upsert(user); }
async findByEmail(e) { return db.users.findOne({ email: e }); }
}
Cas d'usage
Découpler le domaine métier du framework ORM ou de la base de données.
Anti-pattern
Repository avec des méthodes spécifiques a l'ORM qui fuient dans le domaine.