理解Java回调函数
2014-01-15 15:43
337 查看
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。
------------------------------------------------------------------------------
回调方法是把功能定义和功能实现分离的一种手段,是一种松耦合的设计思想。
Android中的控件响应就是利用了回调方法。话不多说,直接上代码。
回调方法的接口:
[java]
view plaincopy
public interface ICallBack {
// 回调方法
public void callBackMethod();
}
回调方法的实现类(监听类):
[java]
view plaincopy
/**
* 监听类
* @author zuolongsnail
*/
public class CallBackListener implements ICallBack {
@Override
public void callBackMethod() {
System.out.println("回调");
}
}
回调方法的调用类:
[java]
view plaincopy
/**
* 调用类
* @author zuolongsnail
*/
public class Caller {
private ICallBack callBack;
public void setCallBack(ICallBack callBack){
this.callBack = callBack;
}
public void call(){
this.callBack.callBackMethod();
}
}
业务处理类:
[java]
view plaincopy
/**
* 业务处理类
* @author zuolongsnail
*/
public class Main {
public static void main(String[] args) {
Caller caller = new Caller();
caller.setCallBack(new CallBackListener());
// 在业务处理的时候调用
caller.call();
}
}
熟悉Android中Button点击事件处理的同学应该都知道跟上面是一样的。
ICallBack------->OnClickListener接口
CallBackListener--------->实现OnClickListener接口的类
Caller-------->Button对象
Main-------->业务处理类(Activity)
------------------------------------------------------------------------------
回调方法是把功能定义和功能实现分离的一种手段,是一种松耦合的设计思想。
Android中的控件响应就是利用了回调方法。话不多说,直接上代码。
回调方法的接口:
[java]
view plaincopy
public interface ICallBack {
// 回调方法
public void callBackMethod();
}
回调方法的实现类(监听类):
[java]
view plaincopy
/**
* 监听类
* @author zuolongsnail
*/
public class CallBackListener implements ICallBack {
@Override
public void callBackMethod() {
System.out.println("回调");
}
}
回调方法的调用类:
[java]
view plaincopy
/**
* 调用类
* @author zuolongsnail
*/
public class Caller {
private ICallBack callBack;
public void setCallBack(ICallBack callBack){
this.callBack = callBack;
}
public void call(){
this.callBack.callBackMethod();
}
}
业务处理类:
[java]
view plaincopy
/**
* 业务处理类
* @author zuolongsnail
*/
public class Main {
public static void main(String[] args) {
Caller caller = new Caller();
caller.setCallBack(new CallBackListener());
// 在业务处理的时候调用
caller.call();
}
}
熟悉Android中Button点击事件处理的同学应该都知道跟上面是一样的。
ICallBack------->OnClickListener接口
CallBackListener--------->实现OnClickListener接口的类
Caller-------->Button对象
Main-------->业务处理类(Activity)