Bonjour,
j'ai un soucis au niveau plutôt conceptuel et je n'arrive pas à m'en dépatouiller ou trouver une solution élégante.
Donc je schématise :
j'ai une classe abstraite A
Celle ci a une méthode static getMessage()
Ensuite j'ai plusieurs classes B, C, D qui héritent de A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public abstract class A { protected static url; public static String getMessage(String key) { getBundle(url).getString(key); } // c'est un code exemple, donc je ne décris pas la méthode getBundle }
Dans ma méthode getMessage() j'ai besoin d'une variable (url) propre à chaque classes filles (B,C,D) mais là ça ne fonctionne évidemment pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class B extends A { private static final String BUNDLE_NAME = "eg"; static{ url = BUNDLE_NAME; } private B() { } }
Soucis : évidemment on ne peut définir de propriété abstract et static à la fois, ça n'a aucun sens. Mais comment faire pour ça que ça fonctionne?
J'ai tenté de regarder du coté du design pattern singleton mais je ne vois pas non plus comment m'en sortir, idem avec interface, ...
Mais peut être un pattern que je ne vois pas ou une solution toute simple auquel je ne pense pas! (un genre de mot clé "static::" à la PHP 5.3?)
Merci.
Partager