Bonjour,
J'ai un problème assez complexe à expliquer.
Contexte: Je dois attaquer 2 bases de données différentes (oracle et postgresql) pour générer du flux SVG.
Pour l'instant j'ai
3 classes:
-GetFromBd: Elle contient la grosse partie des requêtes. En fait il s'agit du code qui peut être similaire pour les deux bases de données (les simples 'select from')
-GetFromBdOra et GetFromBdPost: Elles héritent de GetFromBd et contiennent chacune le code propre a leurs systèmes de gestion des formes géométriques dans des base de donnée
1 interfaces:
-GetFromBdInter: Elle contient la déclaration des méthodes de GetFromBdOra et GetFromBdPost
Donc on a
-GetFromBd
-GetFromBdOra extends GetFromBd implements GetFromBdInter
-GetFromBdPost extends GetFromBd implements GetFromBdInter
-GetFromBdInter
Pour l'instant je fais (en gros...)
J'aimerais pouvoir faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 if(ORA) { GetFromBdOra getfrombdora; getfrombdora.uneMethodeDeGetFromBd(); getfrombdora.uneMethodeDeGetFromBdOra(); } else if(POST) { GetFromBdPost getfrombdpost; getfrombdpost.uneMethodeDeGetFromBd(); getfrombdpost.uneMethodeDeGetFromBdPost(); }
Vu que les 2 classes hérites de GetFromBd(), je pourrais faire la première opération.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UneClasseMagique classemagique; //1ere opération classemagique.uneMethodeDeGetFromBd(); //2eme opération classemagique.uneMethodeDeGetFromBdOraOuPost();
La ou je cale, c'est pour la 2eme opération.
Je pensais utiliser un objet "GetFromBdInter" (=interface qu'implémente les 2 classes) mais si je fais ca, impossible de réaliser la première opération. Vu que l'objet n'hérite pas de GetFromBd!
Quelqu'un a comprit?
Partager