Le 2012-03-22 18:51, Brendan Le Ny a écrit :
Le 14/03/2012 17:20, Brendan Le Ny a écrit :
Ma wishlist :
Concernant la génération des topiaId : dans TopiaId, on a une méthode create implémentée comme ça :
public static String create(Class clazz) { if (!clazz.isInterface()) { throw new IllegalArgumentException( "Only interface is permit to create id: " + clazz); } double random = Math.random(); while (Double.toString(random).contains("E-")) { random = Math.random(); } return clazz.getName() + '#' + System.currentTimeMillis() + '#' + random; }
Moi, ce qui me choque le plus est le while :(, non deterministe par rapport au temps de generation de l'id. Ne serait-il pas plus judicieux de faire une suppression dans la chaine du "E-" ? (si jamais une JVM change l'impl de random et qu'il retourne toujours des chiffres avec un E-, on est tres mal :() ...
Donc, pour Topia3, j'aimerais pouvoir changer la stratégie de génération des topiaIds par configuration. On pourrait fournir deux impléms : - la première, par défaut, qui reprendrais l'actuel - une autre pour les tests (Random avec une graine ou je sais pas quoi de déterministe)
Plutot une bonne idée, mais il ne faut surtout pas devoir créer un objet a chaque génération d'un id. Donc une fois instancié le constructeur d'id doit etre reutilisé par tous (un singleton configurable ?) -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii