回调是一个很有意思的东西,搞编程的都应该搞明白
说下自己的理解,无论是JS还是JAVA,回调其实都是一样的,以JAVA为例,简单的说,就是class a里面有class b的引用。当class a 的某个条件触发时,通知b (调用b的方法).实际中,都是面向接口编程,话不多说,上代码
public class CBTest {
private CB cb;
public CBTest(CB cb) {
this.cb = cb;
}
private void doSomething(){
//自己的业务逻辑,当有业务分支时,选择调用回调函数的方法
int a = new Random( ).nextInt( 10 );
if(a>5){
cb.todoOne();
}else {
cb.todoTwo();
}
}
public static void main(String[] args) {
CBTest test = new CBTest( new CB() {
@Override
public void todoOne() {
System.out.println("todoOne");
}
@Override
public void todoTwo() {
System.out.println("todoTwo");
}
} );
test.doSomething();
}
interface CB{
void todoOne();
void todoTwo();
}
}