J'utilise pour ma part une classe (appel�e "commun"), qui regroupe
l'ensemble des param�tres lus dans le fichier de conf web.xml.
Ces param�tres �tant d�finis comme "static", je n'ai plus qu'� r�cup�rer
leur valeur dans mes classes "filles" en r�f�rant � commun.valeur1 ou une
m�thode commun.getValeur1() (c'est plus propre)

J'ai quand m�me une question : dans ma classe commun, j'ai aussi une
m�thode getConnection, mais je recr�e (en fait, non, je fais appel au pool
de connexion) une connexion � chaque appel. Serait-il plus efficace de
cr�er une connexion au tout d�but (ouverture de session de l'utilisateur),
et de l'utiliser comme les param�tres ? ou au contraire, serait-ce un
risque de perdre de l'efficacit�, ou une faille de s�curit�, ou je ne sais
quoi de ce genre ??

je sais pas si je suis assez clair, j'attends quand m�me vos retour
d'exp�riences...
merci d'avance ;o)

Vincent





[EMAIL PROTECTED] on 01/10/2002 13:58:00

Pour : [EMAIL PROTECTED]@hub
cc :    (ccc : Vincent BOSSUET/E/EDFGDF/FR)
Objet :     RE : Classe ma�tresse dans un programme

Cela s'appelle un singleton.
On peut l'implementer de facon simple :

Public class Singleton {
      private static Singleton instance = null;
      private Singleton() {
            // Comme ca pas d'instance dehors !
      }

      public static Singleton getInstance() {
            if (instance == null) instance = new Singleton();
            return instance;
      }
}

Voilu et qd on en a besoin :

Singleton.getInstance().methode() // Genre getConenction()


______________________________________________
Jean-Baptiste BRIAUD                    Sysdeo
Software engineer               www.sysdeo.com
                         www.eclipsetotale.com

> -----Message d'origine-----
> De : Aurelien Mazurie [mailto:[EMAIL PROTECTED]]
> Envoy� : mardi 1 octobre 2002 13:51
> � : [EMAIL PROTECTED]
> Objet : Classe ma�tresse dans un programme
>
>
>
>     Bonjour � tous,
>     J'ai une question sur l'organisation des programmes Java; mon
> programme a une classe "ma�tresse", qui lors du d�marrage instancie
> toutes les autres en se passant � leurs constructeurs. Ainsi, chacune
> des classes filles peut utiliser des m�thodes de cette classe
> ma�tresse.
>     Par exemple, la classe ma�tresse s'occupe de la
> connection � une base
> de donn�e, et r�cup�re un handle pour cette connection
> (java.sql.Connection); ce que je veux, c'est que chaque classe fille
> puisse avoir acc�s � cette variable (comme la variable est le
> r�sultat
> de l'instanciation d'une classe d�di�e � la connection, j'aimerai ne
> cr�er cette derni�re classe qu'une fois pour toute, pour toutes les
> classes du programme).
>
>     Pour le moment je proc�de comme �a; le code ma classe
> ma�tresse est:
>
> ================================================================
>
>     import classes_filles.*;
>
>     public class MaClasseMaitresse
>           {
>                 public Connection connection;
> // variable � partager chez toutes
> les classes-filles
>
>                 public MaClasseMaitresse()
>                       {
>                             connection = ....
>           // on initialise cette variable...
>
>                             // Puis on initialise
> une classe fille en passant � son
> constructeur
>                             // une r�f�rence � la
> classe ma�tresse
>                             ClassFille fille = new
> ClassFille(this);
>                       }
>
> ================================================================
>
> Ce qui fait que, pour la classe-fille, je peux acc�der � la variable
> "connection" de la classe ma�tresse de la fa�on suivante:
>
> ================================================================
>     public class ClassFille
>           {
>                 public Connection connection;
>     // variable destin�e � recevoir la
> valeur du handle Connection tel que d�fini par la classe ma�tresse
>                 public MaClassMaitresse classMaitresse;
>
>                 public ClassFille (MaClassMaitresse maitresse)
>                       {
>                             classMaitresse = maitresse;
>                             connection =
> classMaitresse.connection;  // et hop !
>                             ...
>
> ================================================================
>
>     Mon probl�me c'est que c'est lourd de devoir cha�ner la
> r�f�rence � la
> classe ma�tresse dans toutes les classes filles (qui elle-m�me cr�ent
> des sous-filles, auxquelles la r�f�rence doit �galement �tre
> pass�e...)
>     N'y a-t'il pas un moyen de stocker quelque part la
> r�f�rence � la
> classe ma�tresse, pour que n'importe quelle autre classe du programme
> puisse utiliser ses m�thodes ? (sachant que la classe ma�tresse est
> instanci�e avant toutes les autres) Je n'ai pas d'exp�rience dans ce
> domaine; lorsque mon programme �tait � ses d�buts, c'�tait
> jouable mais
> maintenant ca devient p�nible (et j'imagine, une g�ne pour la vitesse
> d'ex�cution / occupation m�moire) de passer cette r�f�rence
> de fille en
> fille, sachant que j'ai une arborescence de classes assez importante.
>
>     J'imagine que c'est un probl�me classique qu'a du
> rencontrer tout
> programmeur d�butant en java ?
>
>     En vous remerciant,
>
>     Aur�lien Mazurie
>






Répondre à