IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

[OO] Héritage - Mixins Classes


Sujet :

Langages de programmation

  1. #1
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 53
    Points : 47
    Points
    47
    Par défaut [OO] Héritage - Mixins Classes
    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

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    En C++ j'avais croisé deux sources (cpptips d'un côté, et les articles et la thèse de Samaragdakis de l'autre) qui s'y prennaient différemment et donnaient le même nom.

    Au final j'ai retenu que c'était des moyens pour faire varier séparément interface et implémentation, ou d'obtenir de nouvelles classes par superposition d'implémentations de rôles et de responsabilités.

    Je ne comparerais pas ça aux interfaces Java car c'est plus orienté implémentation (Cela me fait un peu penser à la prog orientée aspects) ; du moins l'approche de Samaragdakis.

    (Le forum sur la POO serait plus adapté je pense.)

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 118
    Points : 137
    Points
    137
    Par défaut
    La deuxième définition est la plus exacte :
    Citation Envoyé par djmalo
    "A class that provides some - but not all - of the implementation for a virtual base class is often called a "mixin". "
    P.ex. en Ruby il y une mixin "Comparable".
    Si ta classe l'utilise, tu devras implémenter l'opérateur "<=>" et le mixin te vaudra d'avoir à disposition plusieurs autres opérateurs ou méthodes : "<", "<=", "==", ">=", ">" et "between?" et cela sans écrire de code supplémentaire.

    Je vois mal comment la même chose peut être possible en Java avec une interface... (en plus seulement avec des méthodes car on ne peut pas surcharger les opérateurs)

    C'est vraiment un "mix" entre interface et implémentation.

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 118
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par Luc Hermitte
    (Le forum sur la POO serait plus adapté je pense.)
    Euh, question très bête: il est où ce forum POO ? ...

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Le #24 à priori -- au vu des FAQ liées et des sujets abordés. Ce message y avait d'ailleurs été crossposté.

Discussions similaires

  1. Héritage et classes
    Par steinfield dans le forum Langage
    Réponses: 5
    Dernier message: 23/10/2006, 23h44
  2. conflit d'inclusions et Héritage de classe
    Par gedeon555 dans le forum C++
    Réponses: 7
    Dernier message: 01/10/2006, 19h48
  3. [POO] Problème héritage des classes PHP4
    Par zana74 dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2006, 16h00
  4. Héritage de classes.
    Par Berzerk_ dans le forum C++
    Réponses: 48
    Dernier message: 13/08/2006, 23h48
  5. [POO] Héritage vs classe dans une classe
    Par robichou dans le forum Langage
    Réponses: 4
    Dernier message: 06/08/2006, 23h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo