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 : Sélectionner tout - Visualiser dans une fenêtre à part
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