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