一个回调函数的例子,首先是我为了完成在工厂工作的任务,但是我不能一直在工厂工作,
我必须知道工作完以后,就要下班回家。所以做了一个回调函数,通知我,今天工作做完了,可以下班回家啦。
具体可以看代码的实现(实现的方式很多吧其实,也可以写其它形式的回调函数代码)
(这个回调函数的实际用途:游戏玩家付费后,进行付费的相关操作(工厂上班),付费完成(工作结束),通知相关代码处理付费完成后的操作(下班回家))
回调函数的接口:
public interface ICallBack {
public void workDone();
}
回调函数的管理器:
public class FunctionManager {
public static ICallBack s_callback;
private static FunctionManager function;
private FunctionManager() {
}
public static FunctionManager getInstance() {
if (function == null) {
function = new FunctionManager();
}
return function;
}
public void Work(String name, ICallBack callback) {
s_callback = callback;
new Factory().workDay();
}
}
具体处理相关事件:
public class Factory {
public Factory() {
}
public void workDay() {
System.out.println("I am in Factory work for my boss!!!: (");
/**
* work Day is done...
*/
// callback
FunctionManager.s_callback.workDone();
}
}
测试代码:
public class Main {
public static void main(String[] args) {
FunctionManager.getInstance().Work("vokie", new ICallBack() {
@Override
public void workDone() {
System.out.println("workDone : )");
/**
* after work. do what you want~enjoy it~!
*/
}
});
}
}
运行结果:
I am in Factory work for my boss!!!: (
workDone : )