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

Design Patterns Discussion :

Interfaçage ou pas ?


Sujet :

Design Patterns

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Par défaut Interfaçage ou pas ?
    Bonjour,

    J'ai encore quelques soucis avec le principe d'interfaces et visiblement, c'est par là qu'il faut que je m'oriente mais j'aimerais votre(vos) avis.

    Voilà, j'ai un projet en .NET et on m'a demandé de rassembler dans une dll les éléments qui pourraient être commun à d'autres projets du même type comme la gestion des communications SQL, les utilisateurs, la création de treeview, etc...

    Jusque là, pas de problème mais je me heurte à un problème au niveau de la gestion des utilisateurs. Dans la dll, j'ai ça :

    classe GContact qui hérite de GUser
    (G pour Généric)

    Un user a juste u login/pwd
    Un contact est un user avec un nom, prénom, job, tel, statut, etc... On les différencie car ils n'ont pas du tout les mêmes droits.

    Ensuite dans le projet dans lequel j'inclus la dll, j'ai ça :

    classe Contact qui hérite de GContact et classe User qui hérite de GUser.

    Question : comment fais-je le lien entre Contact et User ? L'héritage se fait au niveau -1, entre GContact et GUser mais on ne voit donc pas les ajouts des classes filles Contact et User. Or, l'héritage multiple n'existe pas en .net, il faut interfacer.

    Mais je ne parviens pas à trouver le bon raisonnement. Faut il hériter de GUser et implémenter une interface IUser ? Le contraire ?

    Si quelqu'un pouvait m'aiguiller :-)

    Merci et bonne journée

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Gibou Voir le message
    Question : comment fais-je le lien entre Contact et User ? L'héritage se fait au niveau -1, entre GContact et GUser mais on ne voit donc pas les ajouts des classes filles Contact et User. Or, l'héritage multiple n'existe pas en .net, il faut interfacer.
    "on ne voit pas" ? C'est qui le "on" ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Par défaut
    Le développeur, d'un point de vue code donc.
    comme illustré sur ce petit dessin fait rapidement:



    Mon problème est la visibilité de Contact à User (mon super oeil rouge, en haut).

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Gibou Voir le message
    Le développeur, d'un point de vue code donc.
    comme illustré sur ce petit dessin fait rapidement:



    Mon problème est la visibilité de Contact à User (mon super oeil rouge, en haut).


    C'est le développeur (coté Projet) qui crée les classes Contact et User. Donc il n'y a pas de problème de visibilité de ce coté là.

    J'avoue que je ne comprends pas trop le problème.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Par défaut
    Non mais je parle d'accessibilité là.
    Je ne peux pas accéder aux méthodes de User depuis Contact.

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Gibou Voir le message
    Non mais je parle d'accessibilité là.
    Je ne peux pas accéder aux méthodes de User depuis Contact.


    Si ta classe "Contact" connait la définition de la classe "User", je ne vois pas pourquoi elle ne pourrait pas accéder a ses méthodes.

    Si ta classe "Contact" connait seulement la définition de la classe mère "GUser" alors elle ne peut pas accéder aux méthodes spécifiques de la classe fille "User". C'est une règle de base dans un langage typé statique : on ne connait que les méthodes déclarées par le type.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  2. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 15h15
  3. Réponses: 1
    Dernier message: 23/06/2002, 00h15
  4. Pas de fork sous Windows?
    Par chezjm dans le forum POSIX
    Réponses: 8
    Dernier message: 11/06/2002, 12h15

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