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

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