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:
la méthode afficheAll() varie selon les fichiers xml, je ne peux donc pas utiliser une seule classe pour tous mes cas.
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; } ... }
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![]()
Partager