Stockage des listeners, comment ?
Bonjour
J'implémente une classe A qui émet des événements à travers une interface
implémentée par les instances qui écoutent.
Je dois stocker dans chaque instance de A la liste des instances qui écoutent.
Je pourrais le faire dans une liste mais comme ci-dessous n'existe-t-il pas déjà quelque chose
prévu par le framework qui éviterait cette opération et qui par la même
occasion pourrait gérer automatiquement les désabonnements lors
de la destruction des instances ? (un peu comme en delphi pour ceux
qui connaissent.)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| // Ceci est du code d'illustration qui ne doit probablement pas compiler...
Interface MyListener {
void valueChanged(int newValue);
}
public class MaClasse {
private List<MyListener> listeners;
public void addListener(MyListener listener){
listeners.add(listener);
}
public void removeListener(MyListener listener){
listeners.remove(listener);
}
}
public class Ecouteur implements MyListener{
private MaClasse lInstance= getLInstance();
Ecouteur(){
lInstance.addListener(this);
}
~Ecouteur(){
lInstance.removeListener(this);
}
void valueChanged(int newValue){
// qq chose
}
MaClasse getLInstance(){
// qq chose
}
} |
Merci
Henri