Le Jeudi 30 Janvier 2003 15:34, HAREL Anthony a �crit :

> Et dans les jakarta commons, quel est l'objet � utiliser pour mettre en
> place un type �num�r�?
>

Je pr�sume que J�rome faisait r�f�rence � org.apache.commons.lang.enum.Enum 
(ouf ! ) que tu trouveras � http://jakarta.apache.org/commons/lang/

Il existe aussi une autre approche, dont j'ai pas trouv� de biblioth�ques 
toute faite (peut �tre s'y mettront-ils un jour chez les jakarta commons ? ), 
qui est de dire que au lieu de cr�er directement des constantes pour 
ressembler aux enums du C, tu peux cr�er un syst�me objet qui reproduise ce 
comportement.

Par exemple, pour les jours de la semaine, tu vas te cr�er une interface cens� 
d�clencher un comportement :

public interface Semaine
{
 public void pourLeLundi();
 public void pourLeMardi();
 ...
}

Maintenant tu auras certainement besoin de choisir quelle action faire selon 
que tu es lundi, mardi, etc. Pour cela, une classe qui reprend le m�me 
principe que l'Enum de common, sauf que la constante rep�re est priv�e :

public class Jour
{
 private static Jour LUNDI = new Jour();
 private static Jour MARDI = new Jour();
 ...

 public static Jour getLundi()
 {
  return LUNDI;
 }
 ...

Et enfin, une classe d'action statique interne � la classe Jour:

public class Selon
{
 private Semaine maSemaine;

 public Selon(Semaine elle)
 {
  maSemaine = elle;
 }

 public void enCasQue(Jour lui)
 {
   if (lui == Jour.LUNDI)
    maSemaine.pourLeLundi();
   else if 'lui == Jour.MARDI)
    maSemaine.pourLeMardi();
 etc... 
 }
}
}

Je ne sais pas si je suis tr�s clair !

C'est un peu plus compliqu� et laborieux au d�part que les Enum de common, 
mais apr�s tu as tes if...else (ou switch case du C) faits une fois pour 
toute, et ton code est compl�tement lib�r� de toute s�rie de "if" 
kilom�trique ! Tu n'as plus que des interfaces � �crire ! Et par dessus le 
march� ton code ne manipule m�me plus de constantes ! N'est-ce pas 
fantastique ?

A la v�tre.


-- 
SARL diaam informatique - 04 50 77 12 60
Ingenierie, d�veloppements de syst�mes d'information
http://www.diaam-informatique.com


Répondre à