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

Langage PHP Discussion :

[POO] Héritage multiple


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    mon_nom_est_personne
    Invité(e)
    Par défaut [POO] Héritage multiple
    Bonjour a tous,
    Je pose cette question juste par curiosite personnelle. Cette question etant: Est-ce que quelqu'un sais pourquoi en php on a choisi d'implemente l'heritage simple et non multiple ? pour faire comme java ? ou il y a eu une longue et complexe discusion comme pour les namespaces ? car je pense que dans la POO actuel, l'importance de l'heritage multiple n'est plus a debattre. Car un diagramme de classe, soit notre beau projet n'est ni plus ni moins qu'un graphe ou une ontologie de ce dernier. Et dans ces deux theories, l'heritage multiple est tout a fait autorise. je prendrais encore l'eternel exemple de la class 'mere' et de la class 'fille', il me semble que dans la nature la class 'fille' a aussi un papa
    Qui plus est dans de nombreux langage dont la pertinance n'est plus a prouver comme c++ et lisp l'heritage multiple est possible.

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    il me semble que dans la nature la class 'fille' a aussi un papa
    On peut hériter de deux classes en même temps ?

    N'aurais tu pas voulu dire :
    il me semble que dans la nature la class 'mere' a aussi une maman
    Je ne sais pas exactement pourquoi l'héritage multiple / arborescent n'est pas permis en PHP mais cela ne limite en rien les possibilités. Tu peux facilement contouner ca en utilisant une ou plusieurs interface.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    interface A {
    Méthodes_A1();
    Méthodes_A2();
    }
     
    interface B {
    Méthodes_B1();
    Méthodes_B2();
    }
     
    class C implements A, B {
    }

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Par défaut
    Salut !

    Il me semble que c'est un peu une hérésie de contourner le problème d'une telle manière me dirant mon ancien prof d'UML. Je sais la réalité de la prod a s'est raison que la raison elle meme n'a pas mais dans je préfère m'en tenir à ma propre experience.

    Pourquoi PHP n'a pas choisi de permettre l'héritage multiple, ca c'est une bonne question. Je pense déjà qu'un objet fils héritant de plusieurs père, ca c'est pas bon, pas bon du tout, ca traduit souvent un problème de modélisation. Je m'explique:

    Pourquoi avoir un objet fils partageant les méthodes des deux pères ?
    Cela signifie que les méthodes des deux pères peuvent être mergé dans un seul objet et eject l'héritage multiple. Que je pense!!!

    J'attends qu'on me corrige.
    Cordialement
    jo

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut
    Bonjour,

    La méthode de ThomasR est surement la plus judicieuse.

    Lepoches, je ne suis pas du tout d'accord avec toi, il est très intéressant parfois d'avoir plusieurs "parent" pour un seul "enfant", que ce soit en php, actionScript ou autre c'est parfois très très utile.

    De plus, mon prof d'UML me dirait tout le contraire du tiens, il est parfois beaucoup plus judicieux de séparer les traitements en plusieurs classes, il faut penser dans le temps, à l'avenir, à une utilisation futur de ces classes, le but des classes et aussi d'être utiliser dans d'autres programmes car elles ont un traitement et une structure spécifique.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Par défaut
    Citation Envoyé par GoTrUnKo Voir le message
    Lepoches, je ne suis pas du tout d'accord avec toi, il est très intéressant parfois d'avoir plusieurs "parent" pour un seul "enfant", que ce soit en php, actionScript ou autre c'est parfois très très utile.
    Peux tu me fournir un exemple stp ?

    Citation Envoyé par GoTrUnKo Voir le message
    De plus, mon prof d'UML me dirait tout le contraire du tiens, il est parfois beaucoup plus judicieux de séparer les traitements en plusieurs classes, il faut penser dans le temps, à l'avenir, à une utilisation futur de ces classes, le but des classes et aussi d'être utiliser dans d'autres programmes car elles ont un traitement et une structure spécifique.
    Attention a ne pas confondre maintenabilité de ton applicatif et cohérence vis à vis des règles UML.

    http://www.iutc3.unicaen.fr/~moranb/...ic2/stat19.htm

    Mais encore !

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Je sais pas si on peut voir çà comme une hérésie puisqu'en fait on ne contourne pas de problèmes, c'est la méthode la plus adaptée pour éviter de coder n classes qui sont censés avoir des méthodes en commun (en PHP du moins).

    Je pense que ca doit être compliqué à gérer pour un language interprêté et non compilé comme PHP.

    Finalement, je me posais une question sur l'extrait ci-dessous
    je prendrais encore l'eternel exemple de la class 'mere' et de la class 'fille', il me semble que dans la nature la class 'fille' a aussi un papa
    Au final, quelle serait la différence entre la classe "pere" et la classe "mere". Si on devait représenter çà de manière concrète, Papa et Maman serait une seule et même classe HOMME.

    Tu aurais un cas réel où l'utilisation d'un héritage multiple s'appliquerait ? Cà m'intrigue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Recherche cas d'utilisation de l'héritage multiple
    Par sleroux dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 27/07/2010, 18h01
  2. [POO] Héritage multiple ?
    Par K-Phoen dans le forum Langage
    Réponses: 3
    Dernier message: 13/06/2009, 13h28
  3. Réponses: 4
    Dernier message: 05/06/2008, 23h20
  4. Réponses: 3
    Dernier message: 30/08/2006, 15h35
  5. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55

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