Перейти к содержанию

Java/Listeners

Материал из Викиучебника — открытых книг для открытого мира

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

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