java回调的理解

 要理解回调,首先要明白的是:**回调的A,B两方是针对模块而言的,并不是指java中A类,B类。比如系统的库或框架的API代表A模块的话,我们自己写的应用程序就是代表B模块。**
 如果不明白的话,我们就举个例子:比如小明是个框架程序员,框架里有一个接口:
/** 
* @desc: 小明编写的底层回调接口
* @author xiaoming
*/
public interface CallBack {
    public void excute();
}

然后里面还有一个类:

/** 
* @desc: 小明作为API底层身份出现,是不知道应用层有小城这号人物的
* @author: xiaoming
*/
public class XiaoMing {
    private CallBack callBack;
    //注册
    public void setCallBack(CallBack callBack) {
        this.callBack = callBack;
    }
    public CallBack getCallBack() {
        return callBack;
    }
    public void doSome(){
        //回调了callBack对象的excute方法
        callBack.excute();
    };

}

以上是系统的库或框架的API模块也就是A模块介绍完了。然后应用程序员小城准备使用小明的框架,于是他先写了一个类:

/** 
* @desc: 小城是上层(应用层)的,为了被底层(API)调用,必须实现底层的接口
* @author: xiaocheng
*/
public class XiaoCheng implements CallBack{
    @Override
    public void excute() {
        System.out.println("小城实现了小明的接口,这是小城的方法~~~~");
    }
}

然后小城又写了一个测试类进行回调测试:

/** 
* @desc: 测试回调
* @author xiaocheng
*/
public class ClientTest {
    public static void main(String[] args) {
        //小城调用小明写的API,相当于上层应用层模块调用了底层API模块
        XiaoMing xiaoMing = new XiaoMing();
        XiaoCheng xiaoCheng = new XiaoCheng();
        xiaoMing.setCallBack(xiaoCheng);//将小城注册给小明
        //小明在这个底层API的方法中,又回调了应用层传递过来的xiaoCheng对
        //象的excute方法,这个excute方法就是回调方法
        xiaoMing.doSome();
    }
}

以上就是我参考了网上很多关于回调函数理解后得出的理解,相对来说应该更能让人明白回调的理解吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值