什么是回调?回调函数又是什么?

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

我想我们很容易理解“调”这个字,假如有两个类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中没有指针的用法,所以我们可以通过定义一个只有一个方法的接口,然后作为响应函数的参数,来实现类似指针的方式。

 

  • 12
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值