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

Java Discussion :

[Overriding] Meilleur moyen


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Par défaut [Overriding] Meilleur moyen
    Bonjour,


    Voilà, J'ai par exemple une classe XmlReader (qui lit des données d'un fichier xml) et une classe XmlWriter (vous aurez compris...)

    Seulement, j'utilise ces classes dans plusieurs packages mais avec chaque fois une méthode qui varie, par exemple:

    XmlReader:

    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
    public class XmlReader {
    //OVERVIEW: XmlReader est un parseur xml <document(racine)>
    //          document est le fichier xml
    //          racine est la racine de document
     
        private static org.jdom.Document document;
        private static Element racine;
     
        public Object afficheAll(){
        //REQUIRES: /
        //MODIFIES: /
        //EFFECTS:  Retourne un Objet contenant des valeurs du fichier xml     
        ...
        }
     
        public Object read(){
        //REQUIRES: /
        //MODIFIES: this
        //EFFECTS:  Lis le fichier XML et renvoie le contenu via afficheAll()
        ...
        }
     
        public Document getDoc(){
        //REQUIRES: /
        //MODIFIES: /    
        //EFFECTS:  Retourne this.document
     
            return document;
        }
     
        public Element getRac(){
        //REQUIRES: /
        //MODIFIES: /    
        //EFFECTS:  Retourne this.racine
     
            return racine;
        }
     
        ...
     
    }
    la méthode afficheAll() varie selon les fichiers xml, je ne peux donc pas utiliser une seule classe pour tous mes cas.

    J'ai donc plusieurs solutions:

    Soit:

    - Je crée une classe abstraite avec toutes les méthodes qui sont les mêmes et j'étends une nouvelle classe avec seulement afficheAll() dès que nécéssaire

    - Je crée une classe non-abstraite que j'étends de la même manière

    - Je crée une seule classe en faisant un overriding d'afficheAll (donc en ayant par ex 3 afficheAll)

    ou encore? (interface,etc)

    etc...

    Que feriez-vous?


    merci

  2. #2
    Membre chevronné
    Avatar de N_I_C_S
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 450
    Par défaut
    Salut,
    perso je déconseillerais la classe non-abstraite (héritage bancal) et la surcharge de méthodes (tu serais obligé de tester la nature du doc avant l'appel).
    Ca se joue entre classe abstraite et interface. La classe abstraite gagne du volume en factorisant les autres méthodes, et l'interface permet aux classes implémentées d'hériter d'autres classes. Le mieux dépend de l'architecture de ton système.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur full-stack
    Inscrit en
    Mai 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur full-stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 46
    Par défaut
    Bonjour,

    Dans ton exemple je me demande si la méthode afficheAll est bien a sa place dans cette classe. J'ai même un sérieux doute.
    Et puis elle a l'air mal nommée.
    C'est juste un exemple car tu souhaites des info sur l'heritage?
    ou bien c'est un cas concret que tu dois resoudre ?

  4. #4
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    Bonjour,

    //EFFECTS: Retourne un Objet contenant des valeurs du fichier xml


    Je suppose qu'elle est mal nommée, elle ne fait que renvoyer des valeurs, si elle affiche, en effet elle n'est pas à sa place

  5. #5
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Une classe abstraite reste ce qu'il y a de plus simple.

Discussions similaires

  1. [XSLT]Insérer une balise meilleur moyen
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/09/2006, 10h56
  2. [JSP] meilleur moyen d'afficher un ArrayList ?
    Par Kpone dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 22/03/2006, 19h55
  3. Quel est le meilleur moyen d'utiliser uns base MySQL
    Par netah25 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/12/2005, 08h46
  4. Quels sont les meilleurs moyens Marketing pour faire connaitre un site ?
    Par patrick_lassaly dans le forum Webmarketing
    Réponses: 23
    Dernier message: 24/11/2005, 11h28
  5. [MySQL] Quel est le meilleur moyen de stocker une date/heure ?
    Par MiJack dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 31/07/2004, 12h19

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