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

avec Java Discussion :

Programme Client/Commande problème de contraintes


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de skulled
    Inscrit en
    Décembre 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 120
    Points : 120
    Points
    120
    Par défaut Programme Client/Commande problème de contraintes
    Bonjour,
    Je suis sur un programme simple avec des clients qui effectuent une ou plusieurs commandes.
    Je souhaiterai qu'une commande ne puisse correspondre qu'à un seul client.

    Classe Commande :
    Code : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    public class Commande {
     
        private int num;
        private String date;
        List<LigneCommande> lignes = new ArrayList<LigneCommande>();
     
        public Commande(int num, String date) {
            super();
            this.num = num;
            this.date = date;
        }
     
        public int getNum() {
            return num;
        }
     
        public void setNum(int num) {
            this.num = num;
        }
     
        public String getDate() {
            return date;
        }
     
        public void setDate(String date) {
            this.date = date;
        }
     
        public void addLigne(LigneCommande l) {
            lignes.add(l);
        }
    Classe Client :
    Code : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class Client {
    	private String code;
    	private String nom;
    	List<Commande> commandes = new ArrayList<Commande>();
     
    	public Client(String code, String nom) {
    		super();
    		this.code = code;
    		this.nom = nom;
    	}
     
    	public String toString(){
    		return code+" "+nom;
    	}
    	public String getCode() {
    		return code;
    	}
    	public void setCode(String code) {
    		this.code = code;
    	}
    	public String getNom() {
    		return nom;
    	}
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
    	public void addCommande(Commande c){
    		commandes.add(c);
    	}
    Mais dans mon MAIN je peux toujours associer un commande à plusieurs clients, voila ce qui me dérange. Je souhaiterai qu'on me l'interdise.

    Classe Main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Produit p1 = new Produit(001,"tv",1500);
    		LigneCommande l1 = new LigneCommande(p1,1);
    		Client cli1 = new Client("1515","durant");
                    Client cli2 = new Client("1512","dupont");
                    Commande c1 = new Commande(001,"24 nov");
                    
    
    		c1.addLigne(l1);
    		cli1.addCommande(c1);
                    cli2.addCommande(c1);
    Merci

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    le plus simple est de stocker une référence au client dans la commande - lors de l'ajout, vérifier que le client n'est pas encore attribué, si oui, lever une exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void addCommande(Commande c){
        if(c.getClient()!=null) throw new IllegalStateException("this command already has a client!");
        commandes.add(c);
        c.setClient(this);
    }

  3. #3
    Membre régulier Avatar de skulled
    Inscrit en
    Décembre 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 120
    Points : 120
    Points
    120
    Par défaut
    nikel! Merci Pill_S

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/11/2013, 01h13
  2. Réponses: 5
    Dernier message: 26/10/2005, 14h43
  3. Problème de contrainte dans un "CREATE DOMAIN ..."
    Par VenusX117 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/02/2005, 18h06
  4. [Programmation en C][Probléme d'affichage]
    Par ronan99999 dans le forum Windows
    Réponses: 7
    Dernier message: 01/09/2004, 11h47
  5. architecture d'un programme client/serveur asynchrone (win)
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 05/09/2003, 23h59

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