回调就是就调用方在调用被调用方时留给对方一个小尾巴,在被调方需要的时候通过这个小尾巴把消息通知给调用方
实现例子如下,一如既往设计一个顶层接口
/**
- 回调的顶层接口定义
- @author [email protected]
-
*/
public interface CallBack {public void callback(Object object);
}
调用对象
package callback;
/**
- 业务调用方A
- @author [email protected]
-
*/
public class BusARequest implements CallBack {public void execute() {
//调用被调方
BusResponse rep = new BusResponse();
//将自己同时传给被调用方
rep.call(this, 1);
}@Override
//实现的回调方法
public void callback(Object object) {
getResult((int)object);
}public int getResult(int para) {
System.out.println("参数:"+para); return para;
}
}
被调用对象进行回调
package callback;
/**
- 被调用的对象进行回调
- @author [email protected]
-
*/
public class BusResponse {public void call(CallBack callback,Object object) {
System.out.println("进入操作"); System.out.println("回调对象类型:"+callback.getClass().getSimpleName()); callback.callback(object);
}
}
测试示例
package callback;
public class CallBackMain {
public static void main(String[] args) {
BusARequest objectA = new BusARequest();
BusBRequest objectB = new BusBRequest();
BusCRequest objectC = new BusCRequest();
objectA.execute();
objectB.execute();
objectC.execute();
}
}
调用结果