Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM > Design Patterns
Design Patterns Forum d'entraide sur l'utilisation des Design Patterns (GRASP, GOF, etc.) et la recherche de solution à des problèmes récurrents. Avant de poster : Les tutoriels sur les DP. Privilégiez le forum Architecture pour vos questions sur les patterns architecturaux (PAC, MVC, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/04/2012, 21h36   #1
syntaxerror
Nouveau Membre du Club
 
Inscription : décembre 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 42
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
syntaxerror est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2012, 13h36   #2
Luckyluke34
Membre éprouvé
 
Inscription : janvier 2011
Messages : 161
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 161
Points : 437
Points : 437
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.
Luckyluke34 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h47.


 
 
 
 
Partenaires

Hébergement Web