Bonjour, une petite reflexion sur un choix que j'ai a faire :
tout d'abord j'ai une fonction qui prends deux Object en parametres, et j'aimerai savoir si la ligne de code suivante me permettra de savoir s'ils sont du meme type :
Code :
- value1.getClass().equals(value2.getClass())
|
De plus je m'interroge sur cette façon de faire. Mon problème est que je dois avoir un algo modulaire, cad que le meme algo peut s'executer avec differents mode de calcul mais ayant les memes methodes, a la maniere d'une interface.
En realité j'utilise une classe abstraite dans l'algo, sachant bien sur qu'à l'execution cet algo se verra fourni une extension-implementation de la classe abstraite. Et selon cette derniere, on peut avoir differentes valeurs en entrée / valeurs de retour , expliquant le choix de Object lors de la definition de la classe abstraite.
Maintenant, les extensions de la classe abstraite doivent redefinir les methodes abstraites avec des object en entré et sortie sachant qu'une telle prendra à l'execution des doubles, l'autre un tableau de byte etc...
Bon c'est pas super limpide comme ca donc voila un exemple :
Code :
- abstract class Modele
- {
- abstract boolean compare(Object value1, Object value2) ;
- abstract Object calculModele (Region r) ;
- public Modele()
- {
- }
- }
|
Code :
- public class MoyenneTSL extends Modele
- {
- public boolean compare(Object value1, Object value2)
- {
- // cette implementation renvoi et attends des double comme representation d'un modele
- if ( value1.getClass().equals(value2.getClass()) )
- {
- double val1 = ((Double)value1).doubleValue();
- double val2 = ((Double)value2).doubleValue();
- [...]
- }
- public Object calculModele(Region r)
- {
- [...]
- return (Object)new Double(sommeT/nbPixel);
- }
- }
|
Je pense que cela peut fonctionner mais je reste perplexe, existe-il une solution plus élégante ? D'ailleurs celle ci est elle fonctionnelle ?
N'hesitez pas a me demander des precisions, jsuis la dessus depuis quelques jours, le sens des réalités commence a m'échapper peu à peu
Message édité par boulax le 25-02-2004 à 22:32:20