Skip to main content

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

La composition sur l'héritage est une méthodologie de programmation qui est utilisée dans les langages de programmation orientés objet pour aider à établir des relations plus dynamiques et modifiables 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 à l'intérieur d'un autre objet.Ceci est nettement différent de la méthode d'hérédité orientée objet mais peut servir le même objectif dans de nombreux modèles.Les avantages de la composition sur l'héritage comprennent des frontières bien définies entre les objets composés et les objets de wrapper, la capacité de modifier la mise en œuvre d'un objet sans affecter une hiérarchie d'héritage entière, et un cadre moins restrictif pour la conception initiale du programme.Cependant, certaines des complications pourraient inclure des difficultés de sérialisation et des structures trop complexes dans de grands programmes établis.

Dans la programmation orientée objet, l'un des traits qui est important à établir lors de la conception est la façon dont les différents objets sont liés les uns aux autres.L'héritage est un mécanisme central de la programmation orientée objet et permet à un objet de hériter de toutes les données et méthodes de son parent, auxquels il peut ensuite ajouter, modifier ou étendre avec sa propre implémentation.Un exemple de conception basé sur l'héritage pourrait être avec un programme qui a une classe principale qui définit une voiture et modélise certains attributs génériques de toutes les voitures.La classe pour chaque marque de voiture individuelle est ensuite faite 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 particulière de voiture.

La composition est exprimée en incluant l'objetinstances dans d'autres objets.S'il existe une classe principale qui définit une voiture générique, alors au lieu de créer des sous-classes pour des marques de voitures spécifiques, la classe principale pourrait contenir à la place des instances 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é de carburant, qui serait réglé lorsque la classe est utilisée pour créer une instance d'une marque spécifique de voiture.

avec une composition sur l'héritage, leLes objets contenus dans la classe principale ne sont pas directement liés à la classe principale, donnant aux développeurs la liberté de changer le fonctionnement des objets individuels.Un problème que la composition sur l'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'arbre pourrait nécessiter des changements sur la longueur de l'arbre.Toutes les langues orientées objet n'ont pas le support pour plusieurs héritages, et la composition sur l'héritage est une méthode qui peut être utilisée pour contourner cette restriction.