Java中回调函数个人理解
2015-11-27 11:48
393 查看
回调函数个人理解
JAVA中回调函数的理解。-----------被调方在被调用时也会调用对方!-------------------在你调用一个函数的时候,其中的某个参数就是你定义的函数(回调函数,其中有实现业务的功能),我们将这个函数的地址作为参数传给这个函数。在这个你调用的函数中,处于特定条件时就会调用你写得回调函数,这样就完成了整个回调过程。
事实上,很多进行回调的操作是比较费时的,被调用者进行费事操作,然后操作完之后将结果回调给调用者。
例如:
模拟Spring中hibernateTemplate回调机制(PS:学习时看到的别人写的代码)
interface CallBack(){
public void doCrud();
}
public class HibernateTemplate(){
public void excute(CallBack cb){
cb.doCrud();
}
public void add(){
excute(new CallBack(){
@override
public void doCrud(){
system.out.print("执行add操作");
}
}){
}
}
让我们把上面的代码重新构造一下,方便解释:
interface CallBack{
public void doCRUD();
}
public class A implements CallBack{//【背景1】
private B b;//【背景2】
public void doCRUD(){
System.out.println("执行add操作...");
}
public void add(){ //执行方法后,调用b的execute方法
b.execute(new A());//【you call me】
}
}
public class B{
public void execute(CallBack action){ //【背景3】
getConnection();
action.doCRUD(); //A调用execute方法进入这里,B在调用A的方法doCRUD 【i call you back】
releaseConnection();
}
public void getConnection(){
System.out.println("获得连接...");
}
public void releaseConnection(){
System.out.println("释放连接...");
}
}
个人理解:JAVA中,在A类中,调用方法a,其中实现是调用B类中的方法b,并且这个方法的参数是A类的对象,将A类对象传过去执行B类中的b方法,在B类中的b方法实现是通过传过来的对象A执行它自己的方法,这就完成了函数回调。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统