回调函数的理解

对使用回调函数目的理解

让一个已经写好的程序A调用我们自己写的程序B的某个方法。比如,A是一个封装好的加减法计算器程序,可以独立运行。B是我们创建的一个乘除法计算器。回调,就是想让A在可以完成加减法的同时,遇到乘除法可以直接调用B的方法。


相当于A在设计试就预留了可以灵活扩展和使用的功能接口。

回调的理解:

B必须先去调用A的某个方法,A这个方法重新返回来调用B中的方法。这就是回调。

为了实现回调过程,在Java中,必须通过接口。

让A类能够调用某个接口(实际被称为回调接口)中的抽象方法,且具有这个首先接口的引用。让B类实现这个接口的方法。(或者在调用A的方法参数中使用匿名内部类的方式。)

这样,在外部实现过程中,B类先自己调用A类中的某个方法function1,并将自己(回调接口的实现类)作为方法的参数传递给A。之后,A类的function1方法中,会调用这个回调接口中的抽像方法(也就是B类实现的方法),实现回调B类中的某个方法。


举例

假设我是程序员A,以下是我的程序a:

public class Caller{

private MyCallInterface mcl;//A类具有B类(抽象接口的引用)

public Caller(){}

public setCallfuc(MyCallInterface mc){

this.mc=mc;

}

//A类回调B类的方法

public call(){

my.fuc();

}

}

我还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。

/**

* 回调接口

*/

public interface MyCallInterface{

public void fuc();

}

于是,程序员B只需要实现这个接口就能达到回调的目的了:

public class B implements MyCallInterface{

public void fuc(){

//do something

}

public static void main(String args[]){

Caller call=new Caller();

call.setCallfuc(this);//B类将自己传递给A类

call.call();//在B类中调用了A类的某个方法

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,030评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,732评论 19 139
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,196评论 1 114
  • 为什么会有回调函数这个概念 因为 Node.js 设计的理念是【异步】。如果我们每行代码的执行都不依赖于上一行代码...
    混沌中的菜菜阅读 4,406评论 0 2
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,831评论 0 17