Bonjour, voici mon problème:
J'ai deux classes qui ne possèdent que des méthodes statiques (l'ensemble des méthodes est communes aux deux classes). Ces classes ne sont donc jamais instanciées dans mon programme.
Lorsque dans mon programme des appels à maMethode() sont effectué je souhaites pouvoir choisir entre l'appel de MaClasse.maMethode(); ou AutreClasse.maMethode(); selon une propriétés du programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class MaClasse { public static void maMethode(){...} public static void autreMethode(){...} } public class AutreClasse { public static void maMethode(){...} public static void autreMethode(){...} }
Comme l'ensemble des méthodes sont communes aux deux classes j'ai delegué l'appel de ces méthodes pour pouvoir passer par une interface qui serait implémenté par ces deux classes.
Mon problème c'est que je n'arrive pas à obtenir la classe qui doit être appelée puisque je ne peux pas instancié d'objet de type MaClasse ou AutreClasse...
Actuellement j'ai une conditionnelle à chaque appel de maMethode() ou autreMethode() pour effectuer ce que je veux mais ce n'est pas très propre.
J'ai cherché sans succès jusqu'ici c'est pourquoi je m'adresse à vous en espérant que vous pourrez m'indiquer une piste pour la mise en oeuvre (il doit bien y'avoir un pattern pour ce genre de cas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(maPropriete){ MaClasse.maMethode();} else{ AutreClasse.maMethode();}
Merci!
Partager