Bonjour,

Je rencontre le problème suivant depuis peu sur un de mes projets.

J'ai une interface de base IDAO codée (approximativement!) comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Interface IDao
   function read(obj Object) as Object
   function write(obj Object) as boolean
   function delete(obj Object) as boolean
Cette interface concerne comme on le voit la lecture/écriture/suppression de données. Et elle est héritée par deux autres interfaces plus précises :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Interface ITxtDao
   inherits IDao
      function parseLine(...)
      function countLines(...)
      etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Interface IXlsDao
   Inherits IDao
      function countRows(...)
      function countFields(...)
      etc...
L'une pour l'utilisation de fichiers textes, l'autre pour les Excels, il y en aura d'autres bien assez vite :o)

Pour l'instant, chacune de ces deux interfaces sont implémentées (forcément) par une classe TxtDao et XlsDao. Mais là ca se gatte, car je souhaierai pouvoir implémenter les méthodes de l'interface IDao tout en modifiant les paramètres d'entrées. Comme dans l'exemple suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Class TxtDao
   Implements ITxtDao
      ' implémentation des méthodes diverses...
      function read(linenumber Integer) as String
      function write(linedata String) as Boolean
      function delete(linenumber Integer) as Boolean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Class XlsDao
   Implements IXlsDao
      ' implémentation des méthodes diverses...
      function read(rownumber Integer) as Array[]
      function write(rowdata Array[]) as Boolean
      function delete(rownumber Integer) as Boolean
Mais bon, il semblerait que ce soit pas permis en VB.Net... On pourrait bien implémenter IDao avec une classe Dao par exemple et surcharger ses méthodes. Mais c'est pas très propre, car la surcharge implique que les méthodes de cette classe Dao serait déjà utilisables telles quelles et leur surcharge serait une addition de fonctionnalités.

Là ce ne sera pas le cas, l'interface IDao ne contiendra que les signatures des méthodes de lecture/écriture/suppression et les classes l'implémentant concerneront des fichiers Excels, Xml, texte, etc... et donc auront des signatures de méthodes (paramètres) forcéments différentes!

Enfin voilà le problème. Quelqu'un a t il déjà été confronté à ce genre de problème?

Merci d'avance

Arach