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

C# Discussion :

Couplage d'interfaces en c#


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut Couplage d'interfaces en c#
    Bonsoir à tous,

    Je développe actuellement une application en c# et je me retrouve face à un problème. Je suis avant tout un développeur JAVA et j'ai donc acquis certains réflexes qui me font hésiter quand je programme en c#.


    Je souhaite faire un programme en couche : ihm, biz, dao. La communication entre ses couches ne peut se faire qu'au travers d'interfaces. Le but étant d'empêcher la couche biz de connaitre l'implémentation de la couche dao etc.

    C'est là que survient mon problème : comment faire pour instancier une classe implémentant une interface sans connaitre le nom de cette classe ?

    Un petit exemple pour une meilleure compréhension :
    En java, j'ai mon interface Porte dans ma couche BIZ. Elle est accessible depuis la couche IHM.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public interface Porte {
       public static final Porte INSTANCE = new PorteEnBois();
       public void ouvrir();
       public void fermer();
    }
    La ligne INSTANCE permet d'implémenter directement la Porte sans trop se peter le c... L'IHM ne voit pas la PorteEnBois mais voit bien l'instance. Donc on peut faire Porte.INSTANCE.ouvrir(); C'est très pratique.

    En C#, je ne peux pas mettre de champs dans une interface et donc mon petit "truc" ne fonctionne pas. D'où ma question : comment vous y prendriez-vous pour instancier PorteEnBois sans que l'IHM n'en ait vent ?

    Merci d'avance !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut
    Regarde du coté de l'IOC http://philippe.developpez.com/artic...dedependances/

    Tu peux aussi jeter un coup d'œil sur MEF

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Salut,

    en effet tu as des réflexes java ...
    les interfaces c# sont différentes : c'est plutôt à voir comme un contrat d'implémentation. C'est uniquement du déclaratif. Ce n'est pas une classe abstraite, ce qui signifie que tu ne peux pas inclure des instructions dedans : oublie donc la création d'instances ...

    Si tu veux implémenter un singleton comme le montre ton exemple, tu es obligé de passer par une classe abstraite. Avec un peu de finesse tu pourra mettre la rendre générique.

    Bon courage,

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  2. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  3. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27
  4. [VB6] [Interface] Tester le Type de Controle
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 16/09/2002, 09h51
  5. [VB6] [Interface] Icones de boutons de barre d'outils
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 13/09/2002, 15h50

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