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 :

[C# 2.0] Architecture d'un module de communication


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Par défaut [C# 2.0] Architecture d'un module de communication
    Bonjour,

    je dois échanger des données avec un système de mesures analogiques et de conversion magnètique appellé communément Magnetron.
    Je souhaite réaliser un module qui dialogue avec ce Magnetron. Aujourd'hui les échanges se font via modem mais il n'est pas improbable que par la suite les échanges se fasse via TCP/IP
    Je m'interroge sur la structure de mon module.

    Je pense réaliser une interface IEchangeMagnetron qu'implementeront les classes qui échangent les données avec le Magnetron. Ainsi pour échanger les données par modem je pense faire

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Interface IEchangeMagnetron
    {
    <div style="margin-left:40px">
    void SendCommande();
    void RcvInformation();</div>}
     
    class EchangeMagnetronModem:IEchangeMagnetron
    {
    public void SendCommande()
    {
    }
     
    public void RcvInformation()
    {
    }
    }

    Perso, je trouve ça pas trop mal.
    Ce module sera compilé sous forme de dll.

    Mais ensuite que devrais-je faire pour que l'exterieur accède aux données du Magnetron ?
    Laisser comme tel, juste une interface IEchangeMagnetron et une ou plusieurs classes selon le type d'échange.

    Ou développer en plus une classe Magnetron qui sera déclaré comme public et qui sera l'interface de mon module.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Magnetron
    {
          public double MesureTemperature;
          public double MesureTension;
          [..]
    }

    Merci pour vos conseils.

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Citation Envoyé par Pilloutou
    Mais ensuite que devrais-je faire pour que l'exterieur accède aux données du Magnetron ?
    Laisser comme tel, juste une interface IEchangeMagnetron et une ou plusieurs classes selon le type d'échange.

    Ou développer en plus une classe Magnetron qui sera déclaré comme public et qui sera l'interface de mon module.
    STP peux-tu être plus clair pour qu'on puisse t'aider : je ne vois pas de Magnetron dans ton interface.

  3. #3
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Par défaut
    Bonjour,

    Solution A:
    je developpe une interface IEchangeMagnetron défini comme précédemment.
    Et une classe pour échanger les données avec le Magnetron via le modem par exemple (classe EchangeMagnetronModem). Je compile tout ça sous forme de dll.

    Ensuite cette dll est référencée dans un autre projet, une interface utilisateur par exemple. Dans l'UI, les échanges avec le Magnetron sont instanciés de cette manière:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class UI
    {
          [..]
          IEchangeMagnetron magnetron = new EchangeMagnetronModem();
          [..]
    }

    Solution B:
    Je développe une interface IEchangeMagnetron, une classe d'échange EchangeMagnetronModem, et en plus une classe Magnetron déclarée comme public qui sera l'interface de mon module. Cette classe gère les échanges via le modem (ou autre) avec le Magnetron. Je compile tout ça sous forme de dll.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Magnetron
    {
          public double MesureTemperature;
          public double MesureTension;
     
          public IEchangeAccelerateur EchangeAccelerateur = new EchangeMagnetronModem();
          [..]
    }

    Ensuite cette dll est référencée dans un autre projet, une interface utilisateur par exemple. Dans l'UI, la classe Magnetron est instanciée comme :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class UI
    {
        Magnetron magnetron = new Magnetron();
    }

    En espérant avoir été plus clair.
    Merci de votre aide.

  4. #4
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Oui c'est un probleme classique de l'abstraction. En fait tu veux creer un moyen de transport. Le reste doit être géré par la classe.

    Je te suggere de te documenter sur le Design Patter (patron de conception) Factory . Tu trouveras plein plein d'exemple sur Internet.

  5. #5
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Par défaut
    Ok je te remercie bien sauf que d'après toi qu'est-qui est mieux, la solution A ou la solution B ?

    Merci d'avance.
    Bye

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/05/2015, 10h42
  2. Réponses: 0
    Dernier message: 17/03/2015, 14h24
  3. Architecture multi-base avec éléments communs
    Par kheraud dans le forum Administration
    Réponses: 2
    Dernier message: 02/07/2014, 09h12
  4. [XL-2007] Problème avec le module microsoft communication controle
    Par Archershiro dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2013, 14h42
  5. Choix entre différents réseaux et module de communication
    Par sprite03 dans le forum Périphériques
    Réponses: 1
    Dernier message: 06/06/2010, 20h43

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