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