Java/Listeners: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
мНет описания правки
Строка 35: Строка 35:
{{N|32}}
{{N|32}}
{{N|33}} a.doSomething(); {{Slashstar|Оба объекта '''b''' и '''c''' выполняют doEvent}}
{{N|33}} a.doSomething(); {{Slashstar|Оба объекта '''b''' и '''c''' выполняют doEvent}}

[[Категория:Java]]

Версия от 09:39, 20 января 2008

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

1N  interface AListener {
2N    public void doEvent();
3N  }
4N 
5N  class A {
6N    AListener listeners[];  
7N    public void addListener(AListener listener) {
8N      /* Запоминаем listener */
9N    }
10N 
11N   public void doSomething(){
12N     /* Делаем что-то о чем требуется оповестить всех слушателей */
13N     for(int i=0; i<listeners.length; i++) {
14N       listeners[i].doEvent(); /* class A не знает кто его слушает */
15N     }
16N   }
17N } 
18N 
19N class B implements AListener {
20N   public void doEvent(){
21N     /* Что-то случилось в классе A */
22N   }
23N }
24N 
25N //...
26N A a = new A();
27N B b = new B();
28N B c = new B();
29N 
30N a.addListener(b);
31N a.addListener(c);
32N 
33N a.doSomething(); /* Оба объекта b и c выполняют doEvent */