Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Nouveau Membre du Club
    Inscrit en
    décembre 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : décembre 2004
    Messages : 43
    Points : 29
    Points
    29

    Par défaut Séparer un modèle de son état courant

    Bonjour,

    Je souhaite réaliser un programme s'apparentant à un simulateur de circuits logiques : un ensemble de composants divers reliés entre eux donc.

    Je souhaiterais séparer la structure d'un schéma logique (i.e. les instances des différents composants qui le composent, ainsi que les liens entre eux) de l'état courant des composants (valeurs booléenne courante, etc...)

    La raison derrière est que je pense qu'il est plus propre de séparer le modèle structurel du circuit (chargé depuis un fichier par exemple) de l'ensemble des variables qui traduisent l'état actuel du système, pour une simulation donnée.

    Autrement dit, si je considère qu'un composant possède un ensemble de méthodes permettant d’interagir avec, une liste des composants en entrée, une liste des composants en sortie et un ensemble de variables d'état, je souhaiterai avoir d'un côté mes instances de classe "Composant", qui contiennent les méthodes, la liste des entrées et la liste des sorties, pour chaque composant, et mes instances de classe "EtatComposant" correspondantes à côté (sachant que les méthodes de la classe Composant nécessiteraient à chaque fois d'avoir la liste des EtatComposant du système en paramètre, pour pouvoir fonctionner).

    A priori rien de sorcier donc.

    Le soucis c'est que je souhaiterai faire hériter des composants plus spécifiques de ma classe Composant, qui auraient des variables d'état additionnelles, autrement dit :

    ComposantSpecial hérite de Composant
    EtatComposantSpecial hérite de EtatComposant

    Je souhaiterai donc avoir mon vecteur de composants de mon système, qui comprenne à la fois des Composant et des ComposantSpecial, et mon vecteur d'état correspondant, avec des EtatComposant et EtatComposantSpecial dedans.

    Et il faudrait bien entendu qu'un Composant modifie son EtatComposant associé, et pareil pour ComposantSpecial.

    Le problème c'est que je ne vois pas comment faire ça proprement, à moins de faire un transtypage en hard, mais c'est moche...

    Y a-t-il une solution classique à ce problème ?

    Merci

  2. #2
    Membre chevronné
    Inscrit en
    janvier 2011
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 231
    Points : 664
    Points
    664

    Par défaut

    Je ne connais pas le contexte, mais je trouve un peu alambiqué d'avoir un vecteur de composants et à côté un vecteur d'états et devoir faire le lien entre eux et passer les états en paramètre à chaque appel de méthode d'un composant...

    Pourquoi ne pas encapsuler les Etats dans la classe Composant ? Chaque composant connaîtrait ses états et on pourrait utiliser le polymorphisme si jamais il y a besoin de voir les EtatsComposantSpecial d'un ComposantSpecial comme des Etats normaux.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •