CallBack概念:就像打电话时对方不在,但在对方手机上保留了未接来电,等对方看见未接来电时再使用未接来电回叫你。
回调在现实中的应用价值:
当我们使用某一种算法对于数组进行排序时,因为算法效率的考虑,暂时不知道采取何种排序算法合理,此时就可以在原本打算实现排序算法的地方定义一个CallBack参数,然后调用这个CallBack参数(CallBack定义为一个接口,然后调用这个接口的方法)。在真正调用排序算法时,才实例化这个CallBack参数,来决定采取何种排序算法
回调函数的开发方式流程:
1、 定义一个接口,定义一个待实现的方法。
2、 定义一个具体类,定义一个方法,调用上面的接口的待实现的方法。
3、 实例化上面的具体类,调用上面的方法,通过匿名类的方式实现execute()方法。
interface CallBack {
// 执行回调操作的方法
void execute();
}
class NoUseCallBackSort {
public static void sort(int[] a) {
// 具体的排序功能实现代码
}
public void exeSort() {
int[] arr = { 31, 5, 956, 7, 89 };
sort(arr);
}
}
public void sort(CallBack callBack) {
callBack.execute(); // /进行回调操作
}
UseCallBackSort backSort = new UseCallBackSort();
backSort.sort(new CallBack() {
// 定义execute方法
public void execute() {
// 这里可以加放一个或多个排序方法
NoUseCallBackSort backSort = new NoUseCallBackSort();
backSort.exeSort();
}
});