作为程序员,回调这个词是我们经常听到的一个词,对于新手来说,可能很多人搞不清楚回调的意思。

我想我们很容易理解“调”这个字,假如有两个类A和B,我们很容易理解“A调B的方法”是什么意思,那么前面加个“回”,是多了什么意思呢?其实就是在“A调B的方法”的基础上,“B又调了A中的方法”。

我们可以这样初步描述回调的意思:B的方法在被A触发的情况下去调用了A的方法。

根据百度百科的描述:

回调函数就是一个通过函数指针调用的函数。
回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的。

那么根据该描述,A中被B调用的方法就是回调函数,在这里特定的事件就是“A调用了B的方法”。

所以只要不是由A来主动调用自己的方法,而是由于某种事件被其他类调用,我们都可以说A的方法是回调函数。

接着我们还可以这样描述:由于是B调用了A的方法,那么就是A向B注册了自己的回调函数,而B的方法响应了回调事件,那么B的方法称为响应函数。

现在我们可以列出整个回调流程需要的要素:

被调用方(定义回调函数的A)

调用方(调用回调函数的B)

触发回调响应的事件(A调用了B的响应函数)

回调函数(A中实现)

响应函数(B中实现)

流程:

A定义回调函数,注册到B的响应函数,事件触发,B调用响应函数,响应函数调用回调函数。

那么现在我们就可以说:回调就是在某种事件触发的情况下,由响应事件的一方去调用注册的一方的过程。

前面说过:回调函数是通过指针调用的函数。

但是java中没有指针的用法,所以我们可以通过定义一个只有一个方法的接口,然后作为响应函数的参数,来实现类似指针的方式。

什么是回调?回调函数又是什么?相关推荐

  1. python教程:实现延时回调普通函数的方法

    这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 回调函 ...

  2. python中实现延时回调普通函数示例代码

    这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 回调函 ...

  3. python中延时函数_python中实现延时回调普通函数示例代码

    python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  4. 支持回调处理 php函数,PHP支持回调的函数有哪些

    PHP支持回调的函数有哪些 PHP支持回调的函数有:1.匿名函数,代码为[$server->on 'Request']:2.类静态方法,代码为[static function test $req ...

  5. android jni 回调 java_android linux线程通过JNI回调java函数 | 学步园

    Linux线程通过JNI回调JAVA函数 最近做的一个小工程需要用到回调函数,由linux层回调到java层,调试的时候会遇到一些问题,免得忘记,在这里记录一下: JNI的各种数据类型和数据结构我就不 ...

  6. android JNI层线程回调Java函数

    今天,简单讲讲android的jni如何使用jni回调java函数. 之前,我写了部分jni的博客,讲的都是如何从android的java代码调用jni的函数.最近,需要做一个新的功能,在jni的C函 ...

  7. 支持回调处理 php函数,PHP支持回调的函数有哪些?

    PHP支持回调的函数有:1.匿名函数,代码为[$server->on 'Request']:2.类静态方法,代码为[static function test $req]:3.函数,代码为[my_ ...

  8. Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例

    由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二 ...

  9. jni实现回调java函数

    jni 实现回调java函数 一.JNI实现回调 通过JNI在Native层调用JAVA层的方法,来实现Native层向JAVA层传递消息. JNICallback.java [java] view ...

  10. python里延时回调普通函数

    想在将来某一时刻进行函数回调,可以使用call_later()函数来实现,第一个参数是回调用延时,第二个是回调的函数名称,例子如下: import asynciodef callback(n):pri ...

最新文章

  1. 说说Thread.Sleep(0)的那些奇怪的事
  2. 数据挖掘十大经典算法之——Naive Bayes 算法
  3. c++新特性11 (6) =default
  4. 一卦,测一下我心里想的事
  5. 类和类之间的关系解析-1
  6. SpringBoot和JPA使用SQLServer2008数据库搭建后台的时候排序报错
  7. Shell每行前面加上行号
  8. linux sed命令_Linux sed命令用法与示例
  9. java虚拟机的数据_Java虚拟机运行时数据区域
  10. Oracle作业5——多表查询、子查询
  11. fortran程序设计2011年注册电气工程师基础考试大纲3
  12. CodeSmith连接MySql数据库
  13. python求n的阶乘_python如何计算n的阶乘
  14. 模式识别与机器学习(作业5)基于PCA–LDA的人脸识别
  15. 遗传算法(确定性排挤)
  16. python3中调用map函数报错map object at 0x000001EF004D97B8
  17. 100元人民币兑换成1元、2元、5元人名币的所有兑换方案
  18. Proficoud FAQ常见问题解答(持续添加)
  19. pycharm怎么安装numpy库
  20. 使用Java将多个PDF合并为一个PDF

热门文章

  1. 个人计算机上的服务器怎么打开,电脑服务器怎么打开
  2. 【正点原子FPGA连载】第八章LED灯闪烁实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  3. 微信小程序云开发快速入门手册-告别切图仔的时刻到了
  4. HaaS600物联网开发板学习笔记(二)---轻应用方式让LED闪烁起来
  5. acw_sc__v2加密参数分析(XX找房、36氪、亿X欧、大TANGs商务)
  6. 忆流年代挂源码 公益版
  7. 薪资17K是一个怎样的水平?来看看98年测试工程师的面试全过程…
  8. 关于ARM的一些简介
  9. 职业经理人的生活习惯
  10. hash oracle 分表_数据库hash分表