Java 什么是回调
发布时间:2025-05-13 06:06:05 发布人:远客网络
一、Java 什么是回调
所谓回调,就是客户程序Client调用服务程序Service中的某个方法A,然后Service又在某个时候反过来调用Client中的某个方法B,对于Client来说,这个B便叫做回调函数
2、Client实现回调接口和回调方法,并在Client中包含Service引用,通过引用调用Servie中的方法并且必须传入一个当前对象Client(因为当前对象实现了CallBack接口所以也属于接口对象)
3、在Service中定义一个接口对象并在方法中对初始化(将Client传过来的当前对象赋值给接口对象),通过接口对象调用接口中方法(调用的Client实现的接口方法)
二、java中怎样定义回调函数
1、程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。
2、假设我是程序员A,以下是我的程序a:
3、public void setCallfuc(MyCallInterface mc)
4、还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。
5、public interface MyCallInterface
6、于是,程序员B只需要实现这个接口就能达到回调的目的了:
7、public class B implements MyCallInterface
8、public static void main(String args[])
三、JAVA回调机制
1、你理解的基本对,这是一种回调机制的情况。方法中传递的接口实现上就是一个监听器Listener的接口,调用方法时,传具体的接口实现的实例,也可以事先就传入(通常是叫注册监听器)。这种情况常见于Java Swing编程中的事件机制。
2、软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。
3、同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;
4、回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;
5、异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。
6、异步调用实现是回调的一种情况,比如方法可以提前返回,具体的逻辑执行可以在另外一个线程中,执行完成后,由这个线程来回调,负责通知调用方。