当我们遇到一些功能,这些功能都有共同的功能,但是他们都有自己独特的功能,比上传附件和上传图片,他们共性都是文件上传,他们的不同之处在于上传图片的时候需要限制上传的文件的类型,比如后缀名、问价你的大小,而上传附件虽然也有这些限制,但是上传附件的限制明显和上传图片不同,这时我们就得将这两个方法,相同的部分写两次甚至跟多,怎样才能较好的解决这种现象,当然是将相同的部分出来写诚信的方法,但是抽出来之后怎么样使他们的限制条件在不同的使用环境中不同了。这就引出了我所说的回调函数,当程序运行到一定程度的时候就会调用这个函数,这个说法有点牵强。具体怎么使用请看下面的代码:
11.定义被回调函数的接口,该接口的就是给使用回调函数者添加自己的实现的接口。
package com.dfec.test.inter;
public interface TestInterface {
public void callBackFunction(int i);
}
2.定义回调函数,也就是在函数中使用定义的被回调函数的方法(该方法其实是抽出来的的共性的部分,不同的部分利用被回调函数实现)比如说下面的例子,很明显是一个循环四次的函数,但是没循环一次要做什么在该函数中不定义,而是交给TestInterface的callBackFunction函数来实现
public void round(TestInterface testInterface){
for(int i = 1;i <5;i++){
testInterface.callBackFunction(i);
}
}
3.使用回调函数,下面的例子是调用回循环函数也就是回调函数的时候,我想在每次循环的时候打印出当前是第几次循环
xx.round(new TestInterface() {//匿名
public void show(int i) {
System.out.println("第"+i+"次输出");
}
});