-
[OO] Classes Mixins
Bonjour,
j'ai du mal à comprendre ce que sont exactement les mixins classes.
D'après ce que j'ai compris une classe mixin est une classe abstraite qui permet d'ajouter des fonctionnalités à d'autres classes via des méthodes additionnelles. On ne peut pas instancier une classe mixin.
C'est l'équivalent des classes interfaces en Java.
Seulement voilà j'ai cherché quelles étaient les désavantages des mixins classes et je suis tombé sur deux réponses un peu contradictoires :
"The disadvantage is that "mixin" classes no longer give you any code at all -- they just
define the prototype that you are going to have to implement."
et :
"A class that provides some - but not all - of the implementation for a virtual base class is often called a "mixin". "
Bref d'un côte je comprends que les classes mixins ne définissent que des prototypes à implémenter et puis de l'autre ont me dit que les classes mixins peuvent quand même contenir une partie implémentée....
Que penser finalement?
Merci pour toute précisions :)
-
Que tu peux mettre cette notion à la poubelle et que tout cela n'a pas d'importance.
Tu as les interfaces qui définissent des services attendus sans implémentation et les classes abstraites qui peuvent fournir une implémentation partielle de ces interfaces pour faciliter et/ou standardiser certains types d'implémentations des interfaces.
bref, tout ce que je viens de te dire est du standard et donc il ne me semble pas nécessaire de se prendre la tête avec ce terme "mixin"
-
héhé vient dire ça à mon prof pour que je puisse lui répondre ce que tu viens de me dire à l'exam :wink:
Si ça ne tenait qu'à moi, évidemment que je me prendrai pas la tête avec ce concept :lol:
-
c'est à lui de vous expliquer clairement ce qu'il veut dire, pas à toi.
Les design patterns sont des choses très importantes et utilent en info. Il ne faut cependant pas mettre des termes nouveaux sur toutes les choses / idées qui nous passent par la tête. Comprendre les objectifs premiers des concepts présent dans un langage (objet, pas objet, uml, merise,...) c'est déjà bien. Ensuite, on peut aller plus loin et trouver des mots pour des solutions à des problèmes "complexes" et récurrents (les DP). Mais donner un nom à ce dont nous venons de parler ça devient du snobisme