Из великой Википедии :
В компьютерном программировании обратный вызов
исполняемый код, который передается как
аргумент в другой код. Это позволяет
нижний уровень программного уровня, чтобы вызвать
подпрограмма (или функция), определенная в
слой более высокого уровня.
Говоря иначе, когда вы передаете обратный вызов своему методу, это как если бы вы давали дополнительные инструкции (например, что вы должны делать дальше). Вот попытка сделать простой человеческий пример:
- Краска эта стена этот оттенок зеленый (где «краска» аналогична вызываемому методу, а «стена» и «зеленый» похожи к аргументам).
- Когда вы закончите рисовать, позвоните мне по этому номеру, чтобы сообщить, что вы закончили, и я скажу вам, что делать дальше.
С точки зрения практических применений, одно место, где вы иногда будете видеть обратные вызовы, - это ситуации с асинхронной передачей сообщений. Возможно, вы захотите зарегистрировать конкретное сообщение в качестве объекта интереса для класса B.
Однако без чего-то вроде обратного вызова у класса А нет очевидного способа узнать, что класс В получил сообщение. С помощью обратного вызова вы можете сказать классу B, вот сообщение, которое я хочу, чтобы вы прослушали, и это метод в классе A, который я хочу, чтобы вы вызывали, когда получите его.
Вот Java-пример обратного вызова из соответствующего вопроса.