karach2009
Messages postés1Date d'inscriptionlundi 13 juillet 2009StatutMembreDernière intervention13 juillet 2009
-
13 juil. 2009 à 16:21
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDerniè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?
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 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. <