IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Implémentation d'interface et surcharge des méthodes


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut Implémentation d'interface et surcharge des méthodes
    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

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    .net n'est pas fait pour faire ca, et d'autres langages objet c'est pas sur non plus ...

    revois ta conception ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    .net n'est pas fait pour faire ca, et d'autres langages objet c'est pas sur non plus ...

    revois ta conception ...
    Je suis pas 100% d'accord avec toi.

    Il y a moyen de faire ce genre de chose, mais pas avec les interfaces... Apparement, c'est possible avec les classes abstraites dont on peut hériter et surcharger les méthodes (voir MSDN). Mais je dois voir si ces dernères sont utilisées sous .Net (je suis pas très fan de microsoft, alors...).

    J'investigue encore et quand j'aurai trouvé le moyen de faire la chose, je posterai la réponse sur le forum.

    Cordialement,

    Arach

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    les classes abstraites sont possibles en .net
    en vb.net c'est par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public mustinherit class MaClasse
     
      mustoverride sub machin(param as type)
     
    end class

    mais tu auras toujours le meme problème c'est qu'une fois ton type défini, les héritiers de peuvent pas changer le type


    sinon regarde si les classes génériques ou les méthodes génériques peuvent t'aller ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut merci!
    Merci Je regarde dès ce soir les deux solutions!

Discussions similaires

  1. [MySQL] Hiérarchie et surcharge des méthodes
    Par ETVigan dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/07/2012, 10h09
  2. Implémentation automatique des méthodes d'interface
    Par Papy214 dans le forum NetBeans
    Réponses: 2
    Dernier message: 03/12/2009, 10h01
  3. surcharge des méthodes
    Par etoile_de_vie dans le forum Services Web
    Réponses: 1
    Dernier message: 23/12/2008, 11h25
  4. Surcharge des méthodes et déploiement du webservice
    Par hacksi dans le forum Services Web
    Réponses: 1
    Dernier message: 03/04/2008, 10h06
  5. Surcharger des méthodes
    Par Ggamer dans le forum wxPython
    Réponses: 3
    Dernier message: 16/11/2007, 20h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo