Java/Listeners

Материал из Викиучебника

Перейти к: навигация, поиск
Java в примерах

Можно перевести как слушатель. Это объект, который "слушает" и исполняет код в зависимости от события.

interface AListener {
  public void doEvent();
}
 
class A {
  AListener listeners[]; 
  public void addListener(AListener listener) {
    //Запоминаем listener
  }
 
  public void doSomething(){
    //Делаем что-то о чем требуется оповестить всех слушателей
    for( int i = 0; i < listeners.length; i++ ) {
      listeners[i].doEvent(); //class A не знает кто его слушает
    }
  }
} 
 
class B implements AListener {
  public void doEvent(){
    //Что-то случилось в классе A
  }
}
 
//...
A a = new A();
B b = new B();
B c = new B();
 
a.addListener(b);
a.addListener(c);
 
a.doSomething(); //Оба объекта b и c выполняют doEvent