Repository
Architecture 🟡 MidDefinition
Abstrait l'acces aux donnees en encapsulant la logique de persistance derriere une interface de collection. Le domaine ignore la source de donnees.
Analogie
Une bibliothecaire : tu demandes un livre par titre, elle sait ou le trouver sans que tu connaisses le systeme 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
Decoupler le domaine metier du framework ORM ou de la base de donnees.
Anti-pattern
Repository avec des methodes specifiques a l'ORM qui fuient dans le domaine.