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 Java Discussion :

Héritage multiple implicite


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut Héritage multiple implicite
    Bonjour,

    J'ai besoin de remplacer un extends d'une classe Abstract en un implements de cette même classe Abstract.

    Voilà ma classe Abstract
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    public abstract class ListeDynamique {
     
        private CollectionsUtil collectionsUtil;
     
        private String listPere1; 
        private String listFils1;
        private Map<String,String> listKeyValuePere1 = new HashMap<String, String>();  
        private Map<String,Map<String,String>> relationKeyPere1ListeFils1 = new HashMap<String, Map<String,String>>();  
        private Map<String,String> listKeyValueFils1 = new HashMap<String, String>();
     
        public abstract String getMapKeyEntityPere(Object entityPere);
        public abstract String getMapValueEntityPere(Object entityPere);
        public abstract String getMapKeyEntityFils(Object entityFils);
        public abstract String getMapValueEntityFils(Object entityFils);
        public abstract List<?> getListValuesEntityFilsDansEntityPere(Object entityPere); //la relation entre les 2 table    
     
     
        protected void transListToMap(List<?> listAllEntityPere){ //List<Wilaya> wilayas = this.getAllWialya();        
            List<?> ListEntityFils;
            Map<String,String> tmpDairasStr = new HashMap<String, String>();
     
            for(Object wil : listAllEntityPere) {
             this.listKeyValuePere1.put(this.getMapKeyEntityPere(wil), this.getMapValueEntityPere(wil));
     
                 //recup la liste de daira
                 ListEntityFils = this.getListValuesEntityFilsDansEntityPere(wil);
                for(Object dai : ListEntityFils) {
                    tmpDairasStr.put(this.getMapKeyEntityFils(dai), this.getMapValueEntityFils(dai));
                }
     
             //Affectation a "dairasStrsData" 
             this.relationKeyPere1ListeFils1.put(this.getMapKeyEntityPere(wil), tmpDairasStr);
             tmpDairasStr = new HashMap<String, String>(); //tmpDairasStr.clear()
            }  
        }
     
        public void handleCityChange() { //je peut utiliser StringUtil  
            if(listPere1 !=null && !listPere1.equals(""))  
                listKeyValueFils1 = relationKeyPere1ListeFils1.get(listPere1);  
            else  
                listKeyValueFils1 = new HashMap<String, String>();
        }  
     
    //*********** Setter and Getteur ***********   
    }
    Tout ça parce que j'ai besoin de faire plusieurs extends sur une même classe (en plus ça n'a pas de sens conceptuellement).

    Quelqu'un saurait-il m'indiquer un pattern pour implémenter cela ?

    Merci d'avance

  2. #2
    Membre très actif
    Homme Profil pro
    En rupture avec la societé
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : En rupture avec la societé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Par défaut
    Bonjour,

    Crée une classe qui hérite de ta classe abstract, pour ensuite utiliser des instances de cette même classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class uneClass extends classAbstract{
     
       public String getMapKeyEntityPere(Object entityPere){
             super.getMapKeyEntityPere(Object entityPere);
       }
    }
     
    class classUtilisation{
     
      private uneClass maClass;
     
      public classUtilisation{
         maClass = new uneClass;
         maClass.getMapKeyEntityPere(....)
      }
    }
    Il y a certainement une autre façon de faire mais ne connaissant pas tout les rouages de Java, en concept objet, c'est le plus évident qui me vienne.

    Tu as aussi la possibilité de scinder une partie de ta classe en interface.

  3. #3
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Citation Envoyé par burndev Voir le message
    Crée une classe qui hérite de ta classe abstract, pour ensuite utiliser des instances de cette même classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class uneClass extends classAbstract{
     
       public String getMapKeyEntityPere(Object entityPere){
             super.getMapKeyEntityPere(Object entityPere);
       }
    }
     
    class classUtilisation{
     
      private uneClass maClass;
     
      public classUtilisation{
         maClass = new uneClass;
         maClass.getMapKeyEntityPere(....)
      }
    }
    Il y a certainement une autre façon de faire mais ne connaissant pas tout les rouages de Java, en concept objet, c'est le plus évident qui me vienne.

    Tu as aussi la possibilité de scinder une partie de ta classe en interface.
    exactement oui j'avait penser a ça, sa ressemble fortement au paterne Strategy mais je cherche a avoir s'il y une façon de le remplacer avec un implaimant qui va jour un peut prés le même rôle.

    Cordialement

  4. #4
    Membre très actif
    Homme Profil pro
    En rupture avec la societé
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : En rupture avec la societé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Par défaut
    comme je te le disait dans mon premier post implémente une interface.

    Si tu regarde bien ta class certaines méthodes peuvent être implémenté dans une interface.
    Cela ne t'empêchera pas (a vérifier avec java) d’implémenter cette même interface dans ta classe abstract. Ce qui te permettra d'en hériter en temps et en heure même via une autre class.

    Et utilisé l’implémentation de ton interface a ton bon vouloir.

  5. #5
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    edit : j'ai tout compris de travers mea-culpa je repasserai xD

  6. #6
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Citation Envoyé par Nico02 Voir le message
    edit : j'ai tout compris de travers mea-culpa je repasserai xD
    ??

Discussions similaires

  1. composants C++ Builder et héritage multiple
    Par vedrfolnir dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/10/2005, 10h04
  2. [heritage][conception]héritage multiple en java!
    Par soulhouf dans le forum Langage
    Réponses: 9
    Dernier message: 25/08/2005, 20h03
  3. L'héritage multiple est-il possible en Delphi ?
    Par SchpatziBreizh dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2005, 11h30
  4. utilisez vous l'héritage multiple ?
    Par vodosiossbaas dans le forum C++
    Réponses: 8
    Dernier message: 13/06/2005, 20h25
  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