Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1600 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  quel pattern utiliser

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

quel pattern utiliser

n°2040447
Toinou87
That misread could have been.
Posté le 07-12-2010 à 11:06:23  profilanswer
 

Bonjour, j'ai une petite question sur une partie de l'implementation de mon model.
Pour info je suis en C# mais ca devrait pas etre utile pour me repondre.
 
J'ai un type d'objet, appelons le TypeA
La dessus j'ai une classe abstraite qu'on appelera AbstractA
Les classes concretes derivant de Abstract sont ConcreteA et ConcreteB
J'ai aussi une autre classe Container
 
AbstractA me dit qu'elle a un attribut "nodes" de type List<TypeA>, cad il a entre 0..* TypeA
Container contient des AbstractA et doit avoir acces a la liste de nodes
 
dans ConcreteA c'est facile, ConcreteA à une List<TypeA>
par contre dans ConcreteB je voudrais qu'il y ait maximum un seul element dans la List<TypeA>
 
y a t il un moyen de faire ca?
ci dessous un pseudo code
 
//ps j'ai simplifié mon cas, en fait TypeA est une interface et j'ai plusieurs classes qui l'implementent, mais je pense pas que ce soit pertinent ici)
 

Code :
  1. public class TypeA{}
  2. public abstract class AbstractA
  3. {
  4.   private List<TypeA> _Nodes;
  5.   public List<TypeA> Nodes{ get{return _Nodes;}}
  6. }
  7. public class ConcreteA : AbstractA {}
  8. public class ConcreteB : AbstractA
  9. {
  10.   //IMPLEMENTER LE FAIT QU'IL N'Y A QU'UN ELEMENT DANS LA LISTE AU MAX
  11. }
  12. public class Container
  13. {
  14.   public List<AbstractA> desAbstractAs {get;set;}
  15.   public void uneFonctionQuiUtiliseLesNodes(){}
  16. }


---------------
Toinou87 ;-p May the force be with you!!
mood
Publicité
Posté le 07-12-2010 à 11:06:23  profilanswer
 

n°2040472
fluminis
Posté le 07-12-2010 à 12:23:01  profilanswer
 

tu pourrais garder la liste de Nodes private et exposer des méthodes d'ajout et de suppression au niveau de AbstractA.
Tu peux alors mettre de la logique dans tes méthodes d'ajout pour vérifier qu'il n'y a qu'un seul élément dans la classe ConcreteB.


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°2040502
Toinou87
That misread could have been.
Posté le 07-12-2010 à 14:45:03  profilanswer
 

fluminis a écrit :

tu pourrais garder la liste de Nodes private et exposer des méthodes d'ajout et de suppression au niveau de AbstractA.
Tu peux alors mettre de la logique dans tes méthodes d'ajout pour vérifier qu'il n'y a qu'un seul élément dans la classe ConcreteB.


ben je suis en train de faire quelque chose de similaire justement.
 
mais j'essaye d'avoir une implémentation la plus generique possible (du moins au niveau des signatures) mais c'est pas evident.
 
ce que j'aurai bien aimé c'est avoir une espece d'interface qui ferait TypeA et List<TypeA>
J'ai meme pensé a faire 2 classes de containers de TypeA ou List<TypeA> qui elles implementeraient une interface commune. Mais bon je suis pas trop sur de la beauté du truc


---------------
Toinou87 ;-p May the force be with you!!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  quel pattern utiliser

 

Sujets relatifs
utiliser une variable dans une formule[C] Structure de données à utiliser pour le parcours de dossier
Pourquoi utiliser un iterator au lieu d'un for ? [résolu]Design pattern IoC
PAttern.matches comment autoriser que les chiffres et un point ?[Oracle10] Utiliser datapump avec une liste de tables
Recherche du bon pattern regex avec mysql(Php) Utiliser les cookies de curl dans le navigateur
Design Pattern Memento coller des div sans utiliser le placement css
Plus de sujets relatifs à : quel pattern utiliser


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR