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

Java Discussion :

Problème conception Java ("classe unique")


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 94
    Par défaut Problème conception Java ("classe unique")
    Bonjour,

    je conçois actuellement une application mais j'ai du mal à mettre en place mes besoins.

    J'ai X individu qui ont une couleur
    J'ai une table Couleur (unique) qui renvoie un nombre lié à la couleur.

    Comment faire en sorte de récupérer le nombre lié à l'individu i de couleur k sans créer X instances de table couleur (seulement une pour toutes les individus)

    Je pense que la solution réside en créant une classe static mais ...

    Merci d'avance !

  2. #2
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Bonjour,

    Si tes couleurs sont connues à l'avance (et finies), tu peux utiliser un enum.
    Tu pourrais alors définir un nombre à chaque couleur ou bien utiliser directement ordinal(), si tu n'as pas de contrainte (autre que l'unicité) sur ce chiffre.

  3. #3
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Salut,

    si tu es en java 5 ou plus, tu peux utiliser les enums. Par contre, tu devras certainement revoir ton modèle de données.

    Voici un exemple d'enum:

    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
    public enum Color {
     
    	BLACK(0), WHITE(1), RED(2);
     
    	private final int associatedNumber;
     
    	private Color(int associatedNumber) {
    		this.associatedNumber = associatedNumber;
    	}
     
    	public int getAssociatedNumber() {
    		return associatedNumber;
    	}
     
    }
    Et pour l utilisation, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Color.RED.getAssociatedNumber();
    EDIT: grillé

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par bruno_nono Voir le message
    J'ai une table Couleur (unique) qui renvoie un nombre lié à la couleur.
    j'ai pas tout compris du problème (je suis pressé et je lis trop vite ...)
    mais pourquoi ne pas utiliser directement java.awt.Color?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    class Individu {
       private Color couleur;
     
       public int getCodeCouleur() {
           return couleur.hashCode() ;
       }
    }
    bon c'est p.e. pas ça que tu veux ....

    edit: petite précision: dans le cadre des couleurs le hashcode est vraiment unique!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 94
    Par défaut
    J'ai schématisé avec des couleurs pour rendre le problème plus simple mais je crois que ce n'était pas une très bonne idée !.
    Pour faire par exemple:

    entier 1 doit renvoyer 0.5
    entier 2 doit renvoyer 0.6
    etc...

    puis
    intervalle[1.4,2.1] doit renvoyer 0.6
    intervalle[1.0;1.2] doit renvoyer 0.5

    Mon individu va avoir comme caractéristique un nombre (par exemple 2) et il doit aller chercher dans le 1er cas 0.6 et dans le 2eme cas 0.6 aussi (car 2 est compris dans l'intervalle 1.4 et 2.1).

    J'espère avoir été plus clair ^^ désolé pour les couleurs c'était une mauvaise idée!!

    Merci d'avance

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 94
    Par défaut
    Je pense avoir trouvé une solution, mais est-ce la bonne ?


    J'ai une classe Systeme qui contient une liste d'individu. J'ai créer deux classes l'une avec l'entier et son réel associté, l'autre définissant un intervalle et son réel associé. Dans la classe systeme je déclare en static final ces deux nouvelles classes et je peux ainsi y accéder dans individu via:

    où table 1 et table 2 sont les deux valeurs fina lstatic de système

    Systeme.table1.getNbassocie(1)
    Systeme.table2.getNbassocie(1)

    Merci d'avance de me dire si cette solution est correcte, ou dans le cas contraire m'indiquer une meilleure solution (la piste enum étant je le pense faussé car il n'est pas questio nde string ici).

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

Discussions similaires

  1. [ACCESS][JAVA][INSERT][QUOTE]Pb insertion quot
    Par 205 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/01/2008, 17h00
  2. Problème "LoadModule ssl_module modules/mod_ssl.so"
    Par ldcarpathes dans le forum Apache
    Réponses: 9
    Dernier message: 24/01/2008, 11h07
  3. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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