Implémentation d'interface et surcharge

karach2009 Messages postés 1 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 13 juillet 2009 - 13 juil. 2009 à 16:21
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 13 juil. 2009 à 17:59
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 :

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 :

Interface ITxtDao
   inherits IDao
      function parseLine(...)
      function countLines(...)
      etc...

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:

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

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

1 réponse

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
13 juil. 2009 à 17:59
Salut, je comprend pas très bien.

Tu veux implémenter des méthodes n'existant pas dans ton interface ??? Ca te sers à quoi au juste ? tu n'as qu'à simplement écrire la méthode dans ta classe.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
0
Rejoignez-nous