Страницы

Поиск по вопросам

вторник, 27 ноября 2018 г.

Что такое callback-интерфейсы и с чем их едят?

Изучая интерфейсы, наткнулся на такую штуку,как callbak-интерфейс. Если я правильно понял,то это интерфейс-маячок,который можно прикрутить к чему-нибудь,что будет дергать этот интерфейс в случае каких-либо изменений(например такой интерфейс можно весить на канал связи и в случае прихода сообщений выполнять какое-то действие) и он в свою очередь будет выполнять прописанные методы. Вопрос в том как его реализовывать.Примеры из туториалов,которые я нашел в сети мне не совсем понятны. Объясните пожалуйста, как реализуется эта штука, или поделитесь ссылками на хорошие материалы по данной теме.


Ответ

callback - обратный вызов - понятие и применение очень широкое. callback-и вроде вашего маячка называют listener-ами(слушателями по-нашему). Они регистрируются функцией регистрации и потом вызываются не понятно кем и не известно когда (наступит событие или нет? когда? кто знает...)
Есть и другие виды callback-ов.
Например в Win32 APIесть функция EnumWindows для перечисления открытых окошек. Она принимает в качестве параметра функцию обратного вызова EnumWindowsProc EnumWindows знает что вам нужны эти окошки, но не знает зачем. Кроме того по каким-то важным причинам она не хочет выдавать Вам сразу готовый список. Но с помощью callback она сдаст всех по-одному. Для каждого обнаруженного окошка вызывается Ваша функция EnumWindowsProc, чтобы в ней Вы сами разобрались с этим окошком. И здесь функция callback если будет вызвана, то только во время работы EnumWindows, а не когда-нибудь потом.

Комментариев нет:

Отправить комментарий