您的位置:首页 > 编程语言 > Java开发

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