
Envoyé par
tchize_
je suis toujours pas d'accord, quand tu crée un api, tu ne sais pas nécessairement comment elle va etre utilisée. Et je préfère avoir une api qui me laisse surcharger ses méthodes sans poser de question qu'un autre qui ne me laisse rien faire parce que le codeur y a jamais pensé. Extrèmement rare son les cas ou je suis tombé sur du code ou un surcharge avait un effet de bord ennuyeux. Dans 99% des cas, l'effet de bord était voulu par celui qui étant mais non prévu par le codeur de l'api.
J'ai déjà vu pas mal de code type C++ (en elcture uniquement) j'ai rarement vu des codeurs de ce genre de classe qui envisagerais qu'on pourrait, ne serait-ce que avoir "envie" d'hériter de leur classe. Les 3/4 de leurs classes n'avaient aucune méthode virtuelle. Hors pour des design pattern comme le wrapper, il est nécessaire de pouvoir surcharger toutes les méthodes publiques et protégées.
pour moi le concepteur de la classe parent est justement, la dernière personne qui a a se soucier de savoir qu'est-ce qu'on va faire de sa classe. Il a une classe, qui répond à un ou plusieurs besoins, un comportement documenté et son boulot s'arrete là! C'est pas a lui de décider si on va hériter ou non de sa classe pour y ajouter ou non des comportement sur les méthodes existante. Quand tu crée une classe Vecteur, tu sais d'office à quoi elle va servir dans tous les cas?
Partager