回调-Java
回调是在平常的工作中常常遇到的方法。在我们进行服务器编程或者一些方法调用的时候,我们会选择同步方法或者是异步方法(首先需要分清楚同步调用和异步调用的区别)。但是在大多数情况都会使用异步调用和回调一起使用。
模型:A对应调用其方法的时候,实质上是调用了B对象中的C方法。在C方法中进行计算(计算的过程有两种:在当前thread中或者new 一个thread进行计算工作)。当在C中的计算工作结束以后,在C方法中去调用A对象中的某个callback函数。
实现
定义callback接口
interface callback{
cbprocessor(parameters)
}
实现callback的类,A对象对应的类为其。
class ClassA implements callback{
ClassB b
funcA(){
b.funC(this,parameters)
}
@Override
cbprocessor(parameters){
}
}
进行计算的类B,以及其对应的方法C
class ClassB{
funcC(callback,other parameters){
// 计算过程,可以在当前线程或者在另一个线程中
调用callback的方法
callback.cbprocessor(parameters)
}
}
在实现的过程中,具体是异步回调还是同步回调,区别就是在ClassA调用ClassB中实现的方法C中,需不需要等待计算过程结果。如果需要等待计算过程结束就是同步,如果不需要等待过程结束就是异步。