Qu'est-ce que la composition sur l'héritage?

La composition par héritage est une méthodologie de programmation utilisée dans les langages de programmation orientés objet pour aider à établir des relations plus dynamiques et plus variables entre les objets d'une application. Le format de base pour la composition sur l'héritage est l'inclusion d'une instance d'un objet dans un autre objet. Ceci diffère nettement de la méthode d'héritage orientée objet, mais peut servir le même objectif dans de nombreux modèles. Les avantages de la composition par rapport à l'héritage incluent des frontières bien définies entre les objets composés et les objets enveloppants, la possibilité de modifier la mise en œuvre d'un objet sans affecter toute la hiérarchie d'héritage et un cadre moins restrictif pour la conception initiale du programme. Certaines des complications pourraient toutefois inclure des difficultés de sérialisation et des structures trop complexes dans les grands programmes établis.

Dans la programmation orientée objet, l'un des traits qu'il est important d'établir lors de la conception est la relation entre les différents objets. L'héritage est un mécanisme central de la programmation orientée objet et permet à un objet d'hériter de toutes les données et méthodes de son parent, qu'il peut ensuite ajouter, modifier ou étendre avec sa propre implémentation. Un exemple de conception basée sur l'héritage pourrait être avec un programme ayant une classe principale qui définit une voiture et modélise certains attributs génériques de toutes les voitures. La classe de chaque marque de voiture est ensuite créée en tant que descendant de la classe principale, mais définit des informations spécifiques, telles que la taille du moteur, la capacité de carburant ou d'autres informations spécifiques à cette marque de voiture.

La composition est exprimée en incluant des instances d'objet dans d'autres objets. S'il existe une classe principale qui définit une voiture générique, au lieu de créer des sous-classes pour des marques de voitures spécifiques, la classe principale pourrait plutôt contenir des occurrences d'autres objets qui définissent la voiture plus spécifiquement. Cela pourrait signifier que la classe de voiture principale pourrait contenir un objet pour le type de moteur et un pour la capacité en carburant, qui seraient définis lorsque la classe est utilisée pour créer une instance d'une marque spécifique de voiture.

Avec la composition sur l'héritage, les objets contenus dans la classe principale ne sont pas directement liés à la classe principale, ce qui donne aux développeurs la liberté de changer le fonctionnement des objets individuels. Un problème que la composition par héritage peut aider à prévenir est une situation dans laquelle un arbre d'héritage peut être excessivement profond, ce qui signifie que toute modification d'une classe dans l'arborescence peut nécessiter des modifications sur toute la longueur de l'arborescence. Tous les langages orientés objet ne prennent pas en charge les héritages multiples et la composition supérieure à l'héritage est une méthode qui peut être utilisée pour contourner cette restriction.

DANS D'AUTRES LANGUES

Cet article vous a‑t‑il été utile ? Merci pour les commentaires Merci pour les commentaires

Comment pouvons nous aider? Comment pouvons nous aider?