Héritage vs composition – Meilleure programmation

Online Coding Courses for Kids

Vous obtiendrez rapidement un héritage assez profond et large. Vous pouvez vous retrouver avec une hiérarchie de classe profonde certains jours. Un changement par rapport à la classe supérieure peut détruire toutes les classes ci-dessous. Au moment où vous décidez d’hériter d’une autre classe, c’est le moment où vous y attachez votre classe. Vous n’êtes jamais sûr de ce que la superclasse va faire car elle est hors de votre contrôle: D le problème de la classe de base fragile

La hiérarchie des classes est très, très difficile à changer une fois déployé. Une option serait de réécrire le tout.

Apparemment, l’héritage m’apporte tellement d’ennui. Un jour normal, je reçois:

git pull master

Tout a l’air bien – il n’y a pas de conflits. Il est temps de créer une branche sur laquelle travailler. Tout d’abord, exécutez le projet – toujours bon, compilez le succès. Ensuite, je vérifie ma dernière fonctionnalité développée – et boum, c’est foiré.

Après un certain débogage, je découvre enfin pourquoi. C’est à cause de certaines modifications apportées à la classe racine! POURQUOI?

Parfois, il est vrai que nous utilisons l’héritage de manière inappropriée. le Principe de substitution de Liskov serait la ligne directrice la plus importante pour déterminer si l’héritage correspond à votre conception ou non.

Par exemple: B est hérité de A. Utilisez la substitution Liskov pour justifier la relation entre B et A, puis inversez la relation et justifiez-la à nouveau. Si la relation semble logique dans les deux sens, il vaut mieux ne pas utiliser l’héritage.

Un problème avec l’héritage est qu’il vous encourage à prédire l’avenir – c’est un piège. L’héritage vous encourage à construire une taxonomie d’objets très tôt dans votre projet. Vous allez probablement faire des erreurs de conception en faisant cela. Dans certains cas, il rompt également l’encapsulation en exposant les propriétés / méthodes des sous-classes à utiliser.

Un autre inconvénient de l’héritage est qu’il rend le débogage un défi important lorsque la hiérarchie des classes devient trop complexe. Une simple trace de pile peut déborder de l’écran lorsqu’il y a 30 couches d’héritage.

Close Menu