简单回调机制的Java实现

来源:互联网 发布:java跟javascript 编辑:程序博客网 时间:2024/05/17 04:18

原理图:


代码

//首先是接口部分:

package mechanism;public interface ICallBack {public abstract void doSomething();}
package mechanism;public interface ICallee {public abstract String askforCallback();public abstract void setCallback(ICallBack callback);}


//然后是实现部分:

package mechanism;public class CallBack implements ICallBack{@Overridepublic void doSomething() {System.out.println("do something useful in callback");}}

package mechanism;public class Callee1 implements ICallee {private ICallBack callback;@Overridepublic void setCallback(ICallBack callback) {this.callback = callback;}@Overridepublic String askforCallback() {System.out.println("pre operations before invoke callback");callback.doSomething();System.out.println("post operations after invoke callback");String result = "function execute success, ruturn result";return result;}}
package mechanism;public class Caller {private ICallee callee;public void setCallee(ICallee callee) {this.callee = callee;}public void bindCallBacktoCallee(ICallBack callback) {callee.setCallback(callback);}public void executeTask() {System.out.println("pre task analysis");System.out.println("doing part of task");//excute one functionString result = callee.askforCallback();System.out.println("post operation as respond to callee's result");System.out.println("complete the task");}}

//测试:
package mechanism;public class Test {public static void main(String[] args) {System.out.println("main flow : some operations before using Caller");ICallee callee1 = new Callee1();//由Caller完成Callback与Callee的绑定,从而将Callback的执行//委托给Callee//先分配资源Caller caller = new Caller();ICallBack callback = new CallBack();//再完成配置工作caller.setCallee(callee1);caller.bindCallBacktoCallee(callback);//然后就可以运行了caller.executeTask();}}


	
				
		
原创粉丝点击