一个回调函数的例子,首先是我为了完成在工厂工作的任务,但是我不能一直在工厂工作,
我必须知道工作完以后,就要下班回家。所以做了一个回调函数,通知我,今天工作做完了,可以下班回家啦。
具体可以看代码的实现(实现的方式很多吧其实,也可以写其它形式的回调函数代码)
(这个回调函数的实际用途:游戏玩家付费后,进行付费的相关操作(工厂上班),付费完成(工作结束),通知相关代码处理付费完成后的操作(下班回家))
回调函数的接口:
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 : )