您的位置:首页 > 编程语言 > Java开发

简单回调机制的Java实现

2011-09-15 07:24 411 查看
原理图:



代码

//首先是接口部分:

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{

@Override
public void doSomething() {
System.out.println("do something useful in callback");

}

}


package mechanism;

public class Callee1 implements ICallee {

private ICallBack callback;

@Override
public void setCallback(ICallBack callback) {
this.callback = callback;
}

@Override
public 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 function
String 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();
}
}






















                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: