回调:客户端A(高层)调用B(底层)的某个方法f(),B其实又调用了A的某个方法g();对于A来说,方法g()就是一个回调函数。(被调用方在接口被调用时也会调用对方的接口)
回调的价值在于可以在运行时刻动态决定需要调用什么方法。
回调机制的存在使得底层定义一个函数接口,高层可以自主实现该接口。从而不同高层调用同一底层接口产生不同表现。
JAVA中通过Interface实现回调:
Class A implements CallbackInterface{
public void g(){
//do something
}
public static void main(String[] args){
B b=new B();
b.setCallback(new A());
b.f();
}
}
//或者客户端A可以直接使用匿名类调用b.setCallback(new CallbackInterface(){
public void g(){ //。。。 }
});
Interface CallbackInterface {
public void g();
}
Class B{
private CallbackInterface c;
public void setCallback(CallbackInterface c){
this.c=c;
}
public void f(){
}
}