回调是什么?A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
翻译:
回调是一个函数,它作为参数传递给另一个函数,并在其父函数完成后执行。
目前暂时没有找到比较官方的java中关于回调机制的解释,只能从Js API里面找到这样一句话,不过回调是一种机制,并不独属于某一种语言所拥有。回调在JAVA中同样适用,其中包括Android和Spring中就大量使用了回调这一机制(也可以称为设计模式),至于其他的,笔者接触不多,不敢轻易下结论,如果需要深入了解的话还请去查阅相关的资料。
当然,即使开头的关于回调的英文概念被翻译成了中文,不少人仍觉得难以理解
简单来说,回调就是A类调用B类中的X方法,B类中的X方法执行过程中反过来又调用A类中的Y方法完成回调。
代码举例:
首先引入我前段时间在QQ群里面看到的一个小例子来帮助大家更好的了解。
首先有一个老师A,一个学生B,老师A给B布置了作业,但是老师呢,明天有急事,不能等到明天学生B到学校之后检查他的作业,所以就让B写完作业后把作业拍照发给老师检查。
新建一个Demo,结构如下
定义一个用于回调的CallBack接口:
定义一个老师Teacher类:
定义一个学生Student类:
定义一个Text测试类:
OUT:
代码分析:
分析程序运行的过程,会发现整个程序的流向大概是;Teacher -> Student -> Teacher
至于为什么要单独声明一个接口,而不直接把Teacher类传递给Student呢?其实也可以,但是如果语文,数学,英语,体育,,等等一大堆老师都给你布置了作业的话,那你这个Demo将会多出来很多重复的代码,这样是不利于程序开发的。
最后最后,跪求各位大佬使劲star star 一下,有你们的小星星我会更加坚持下去的
本篇文章PDF版及配套代码下载地址:
Spring学习笔记github.com
更多文章教程下载:
hanshuaikang/Spring-Notegithub.com
参考资料:
wiki百科,简书
作者:韩数
时间:2018-11-27
版本:1.0
代码环境:JDK 1.8 Ecplise2018hanshuaikang/Spring-Notegithub.com