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 :

[POO] Interface ou héritage ?


Sujet :

VB.NET

  1. #1
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut [POO] Interface ou héritage ?
    Bonjour,

    J'un petit souci sur la portée d'un enum.

    Explications :

    Je crée une appli VB2005 s'appuyant sur des données dans MS Acces.
    A cette fin, j'ai (en simplifiant) trois classes :

    - une dll dao qui accède à la base et alimente le dataset sur lequel nous allons travailler
    - une dll metiers qui gèrent les objets (more on this later)
    - une appli exe, la principale avec IHM et tout le bazar

    Le dataset est entièrement codé et créé dynamiquement, et n'est pas fortement typé car je ne sais pas faire en dynamique.
    Pour simuler ce cas, j'ai néammoins codé des classes métiers qui reprennent certains avantages des dataset typés.

    Pour que cela marche, je dois avoir accès à un enum qui représente les colonnes de ma table.

    Cet enum est placé dans une classe clsColonnes de dao.dll

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class clsColonnes
        public enum colTable
            Identifiant
            Zone
        end enum
    end class
    Un enum public étant (apparemment) un membre de classe, je peux y accéder à partir de toutes les classes de dao. Nickel.

    Dans la couche métiers, je me suis fait une classe clsColonnes très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class clsColonnes
        inherits dao.clsColonnes
    end class
    Ceci afin de ne référencer que les métiers dans l'appli principale.

    Et bien ça ne marche pas, il faut quand même référencer dao dans l'appli principale, sinon il y a un problème avec cet enum, alors que je fais bien référence aux colonnes de "métiers" dans le code.
    N'y aurait-il pas une autre façon de faire, comme avec les interfaces que je maitrise assez mal ?

    Merci,

    JM
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Dans le même ordre d'idée, est-il possible de coder une propriété publique qui retourne un enum private ?

    Quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class Machin
     
        private enum _truc
            truc1
            truc2
        end enum
     
        public readonly property Truc as ?
            get
                return Me._truc
            end get
        end property
    end class
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    comment pourrais tu récupérer un Enum Private dans le code appelant

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    C'était juste une idée de bidouilleur, mais effectivement, ça ne marche pas.

    Verrais-tu une solution à mon problème :

    dll A défini un enum public, donc static je crois.
    dll B utilise cet enum ainsi que d'autres classes de A. => B référence A
    Appli C devrait utiliser aussi cet enum, mais j'aimerais ne pas référencer A dans l'appli.

    Donc je voudrais en quelque sorte "transmettre" l'enum de A à C à travers B.

    Suis-je assez clair ?

    Et si oui, est-ce que c'est possible ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

Discussions similaires

  1. [POO] virtual et héritage
    Par poukill dans le forum C++
    Réponses: 4
    Dernier message: 27/07/2006, 15h27
  2. Interface et héritage
    Par pirbd dans le forum Delphi
    Réponses: 2
    Dernier message: 12/07/2006, 13h40
  3. [POO] Constructeur et héritage
    Par LDDL dans le forum Langage
    Réponses: 3
    Dernier message: 23/05/2006, 21h44
  4. [POO] Interface et méthode abstraite en PHP5
    Par Invité dans le forum Langage
    Réponses: 9
    Dernier message: 24/04/2006, 00h54
  5. [POO]Interdire l'héritage
    Par Coulon Arnaud dans le forum Langage
    Réponses: 7
    Dernier message: 06/04/2005, 16h20

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