Composite

Architecture 🟡 Mid

Définition

Compose des objets en structures arborescentes pour représenter des hiérarchies partie-tout. Les clients traitent uniformément objets simples et composes.

Analogie

Un dossier de fichiers : un dossier peut contenir des fichiers ou d'autres dossiers, et on peut tous les supprimer de la même façon.

Exemple de code

class Folder {
  children = [];
  add(child) { this.children.push(child); }
  getSize() {
    return this.children.reduce((s, c) => s + c.getSize(), 0);
  }
}

Cas d'usage

Menus imbriques, arbres DOM, systèmes de fichiers, organigrammes.

Anti-pattern

Traiter différemment feuilles et noeuds partout dans le code client.
#architecture#interview#gof#structural

En entretien

  1. A quoi sert le pattern Composite ?

    Il compose des objets en structures arborescentes pour représenter des hiérarchies partie-tout, en permettant aux clients de traiter uniformément objets simples et composés. L'exemple typique est un système de fichiers, où un dossier peut contenir des fichiers ou d'autres dossiers.

  2. Quel est l'anti-pattern à éviter avec Composite ?

    Traiter différemment les feuilles et les nœuds partout dans le code client, ce qui va à l'encontre de l'intérêt du pattern.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre