Aller au contenu
uencoder

Composition over Inheritance

La composition plutôt que l'héritage conseille de construire le comportement en contenant d'autres objets plutôt qu'en héritant, évitant les classes de base fragiles et les chaînes d'héritage profondes.

Objectif

Concevoir des relations d'objets flexibles et maintenables et éviter le couplage et la fragilité de l'héritage.

Mécanisme

Une relation has-a (composition) est préférée à une relation is-a (héritage). La composition permet d'échanger des composants à l'exécution, tandis que l'héritage est figé à la compilation. Les patterns strategy et decorator utilisent la composition. Les interfaces plus la composition réalisent le polymorphisme sans héritage.

Cas d’usage

  • Conception orientée objet
  • Patrons de conception
  • Architecture du code

Termes associés

References