Bonjour à tous,
Au fil de mes pérégrinations programmatiques, j'ai plusieurs fois fait l'expérience d'un dilemme. Lorsque je veux créer classe en contenant une autre ainsi que d'autres données, je ne sais jamais quand ajouter ladite classe en attribut ou au contraire, quand hériter de ladite classe.
Exemple : Admettons que je programme en 2D et que j'ai une classe Sprite qui contient l'imagine affichée ainsi que la position dudit Sprite dans le monde. Je veux créer une classe Personnage : un personnage est représenté par un sprite, mais contient d'autres informations : nom, vie, etc... ainsi qu'une flopée de méthodes qui vont avec.
Convient-il d'avoir le Sprite en attribut, ou plutot d'hériter du Sprite ?
Instincitvement j'utilise la solution de l'attribut, mais lorsque ledit attribut possède beaucoup de méthodes, le code s'alourdit beaucoup (Si par exemple, pour mon personnage, je dois créer une méthode afficher qui appelle la méthode afficher du Sprite). D'un autre côté, hériter de Sprite me laisse perplexe, notamment parceque le Personnage "contient" un Sprite plus qu'il n'en est un. Niveau LSP et tout ça, ça me semble bof.
Du coup, en règle générale, comment choisir la technique utilisée ?
Partager