zoukankan      html  css  js  c++  java
  • Java实现的回调函数

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


    回调函数的接口:

    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 : )
    



  • 相关阅读:
    python内置模块argparse的使用
    pyqt5中通过pycharm配置designer(win和mac都适用,修改下designer目录路径即可)
    初始pyqt5
    pyqt5学习示例
    python中partial用法
    python中操作csv
    python模块imghdr-----推测图像类型
    portainer docker可视化工具
    靠着这份面试手册成功斩获99家BAT大厂offer
    redis事物有一致性吗?
  • 原文地址:https://www.cnblogs.com/vokie/p/3602057.html
Copyright © 2011-2022 走看看