OVH Cloud OVH Cloud

regrouper les champs configurables dans une classe dédiée

4 réponses
Avatar
SoULiaNe
J'ai une applet (un petit jeu). Est ce une bonne idée de regrouper
tous les champs statiques configurables dans une classe qui ne
servirait qu'à ça (pas de méthodes, seulement des champs statiques) ?

4 réponses

Avatar
Vincent Brabant
J'ai une applet (un petit jeu). Est ce une bonne idée de regrouper tous
les champs statiques configurables dans une classe qui ne servirait qu'à
ça (pas de méthodes, seulement des champs statiques) ?
Ne serait-il pas mieux d'utiliser un fichier properties pour cela ?


--
Vincent Brabant
----------------
http://www.netbeans.org/index_fr.html
http://vbrabant-fr.skynetblogs.be

Avatar
SoULiaNe
Vincent Brabant wrote:

Ne serait-il pas mieux d'utiliser un fichier properties pour cela ?


Je ne sais pas, mais ca me semble plus compliquer, pour la
conversion String --> int en particulier. Pour éviter de convertir
constamment il faudrait qu'au démarrage de l'applet je charge le
fichier properties et copie toutes ses "variables" dans des champs
de classes ? Autant y aller directement alors non ?

Avatar
Vincent Brabant

Vincent Brabant wrote:

Ne serait-il pas mieux d'utiliser un fichier properties pour cela ?



Je ne sais pas, mais ca me semble plus compliquer, pour la conversion
String --> int en particulier. Pour éviter de convertir constamment il
faudrait qu'au démarrage de l'applet je charge le fichier properties et
copie toutes ses "variables" dans des champs de classes ? Autant y aller
directement alors non ?


à partir du moment où tu parles de champs configurables, moi, je les
mettrais dans un fichier properties.

Transformer un String en int, ce n'est vraiment pas trop compliqué

class MyClass {
//Constantes
public final static String BUNDLE_NAME = "myBundle";
public final static String MIN_VALUE = "minimumvalue";

//Initialisation avec Valeur par défaut
private final Properties myProperties;
private final int minValue;


//Constructeur
public MyClass {
try {
//retrieve the classLoader ...
ClassLoader classLoader
= this.getClass.getClassLoader();
//... to retrieve the .properties file as a InputStream
InputStream resourceStream
= classLoader.getResourceAsStream(BUNDLE_NAME);
//Creation of Properties class ...
myProperties = new Properties();
//...based upon the .properties file
myProperties.load(resourceStream);

//Read all from the properties into class fields
minValue = Integer.parseInt(
myProperties.getProperty(MIN_VALUE, "0"));
...
}
catch {NumberFormatException nfEx) {
System.out.println("Exception occurs during conversion "
+ "String into int. Please check your properties file "
+ "file.");
}
catch (IOException ioEx) {
System.out.println("Exception occurs during "
+" retrieval of properties file");

}
}
}

//Ici, tous les Getters pour retouver les
public int getMinValue() {
return this.minValue;
}


Evidemment, cela peut-être grandement amélioré. Peut être le transformer
en Singleton, ou tout mettre static et utiliser un Initializer block.

A toi de voir ce que tu veux faire exactement.
--
Vincent Brabant
----------------
http://www.netbeans.org/index_fr.html
http://vbrabant-fr.skynetblogs.be


Avatar
SoULiaNe
Merci beaucoup.