Bob le développeur
Estimer

Pattern Repository

Antoine Auffray

06/11/2025

Le pattern repository, c'est un concept important en programmation orientée objet (POO). Il s'agit d'une couche qui fait l'intermédiaire entre le code métier et l'accès aux données : le reste de l'application manipule les objets comme une simple collection, sans savoir comment ils sont lus ou enregistrés en base.

En TypeScript, voici un exemple de code qui illustre ce concept :

interface IPerson {
  name: string;
  age: number;
}

class Person implements IPerson {
  public name: string;
  public age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}

class Repository<T> {
  private storage: T[] = [];

  public add(item: T): void {
    this.storage.push(item);
  }

  public get(): T[] {
    return this.storage.slice();
  }
}

const personRepository = new Repository<Person>();

const john = new Person('John', 30);
personRepository.add(john);

const jane = new Person('Jane', 25);
personRepository.add(jane);

const people = personRepository.get();

// people est un tableau d'objets de type Person
console.log(people); // [ { name: 'John', age: 30 }, { name: 'Jane', age: 25 } ]

Dans cet exemple, nous avons une interface IPerson qui définit les propriétés name et age. Nous avons également une classe Person qui implémente cette interface.

Nous créons ensuite un repository (ou dépôt) pour les objets de type Person. Ici, il les garde en mémoire dans un tableau ; dans une vraie application, la même interface cacherait l'accès à la base de données. Ce dépôt permet d'ajouter et de récupérer les objets stockés. Dans cet exemple, nous ajoutons deux personnes à ce dépôt : John et Jane.

Enfin, nous pouvons récupérer le contenu du dépôt en utilisant la méthode get() et nous obtenons un tableau contenant les deux personnes.

Le pattern repository est utile lorsque vous voulez isoler les objets métier des détails du code d'accès à la base de données. C'est un outil puissant pour gérer les données dans votre application.

Voici quelques notions liées au domaines de la programmation orientée objet et du pattern design que vous pouvez explorer pour aller plus loin :

  1. Pattern Singleton : un patron qui permet d'assurer que seule une instance d'une classe est créée.
  2. Pattern Factory Method : un patron qui définit une méthode pour créer des objets sans spécifier les classes explicitement.
  3. Pattern Observer : un patron qui permet à un objet de s'abonner aux modifications d'autres objets et de réagir en conséquence.
  4. MVC : un patron de conception pour organiser l'application en trois parties distinctes (modèle, vue et contrôleur).
  5. Injection de dépendance : une pratique qui consiste à fournir les dépendances d'un objet plutôt que de les créer ou de les configurer directement.
  6. Pattern Decorator : un patron qui permet d'ajouter des comportements supplémentaires à un objet en utilisant une classe "décoratrice".
  7. Pattern Proxy : un patron qui permet d'interposer un objet entre l'utilisateur final et le vrai objet pour contrôler l'accès ou les interactions.
  8. Pattern Adapter (Wrapper) : un patron qui permet de convertir l'interface d'une classe en une autre interface, celle qu'attend le client.
  9. Pattern Command : un patron qui permet d'encapsuler des actions dans des objets "commandes" pour faciliter la gestion des traitements et des transactions.

Ce contenu vous a servi ? Ajoutez Bob le développeur à vos sources préférées sur Google.

Un bandeau cookie à poser sur votre site ?

ConsentLab est la CMP RGPD qu'on a développée : Google Consent Mode v2, blocage des scripts avant consentement, widget de moins de 5 ko. Plan gratuit, sans carte bancaire.

RGPDCookiesGratuit

La newsletter qu’on n’ignore pas

Abonnez-vous à notre newsletter pour recevoir nos derniers articles, retours d’expérience et conseils tech directement dans votre boîte mail.

Désinscription en un clic. Vos données restent privées.