java回调
来源:互联网 发布:淘宝屏蔽粉丝数 编辑:程序博客网 时间:2024/06/05 16:58
回调的思想是:
类A的a()方法调用类B的b()方法
类B的b()方法执行完毕主动调用类A的callback()方法
也就是一种双向的调用方式。
代码模拟的是这样一种场景:老师问学生问题,学生思考完毕回答老师。
UML类图如下:
回调示意图如下:
java代码:
回调接口:
package demo6;/** * * @ClassName: Callback * @Description: 回调接口 * @author cheng * @date 2017年8月11日 下午6:57:04 */public interface Callback { /** * * @Title: answer * @Description:回调函数 */ void answer(String answer);}
教师类:
package demo6;/** * * @ClassName: Teacher * @Description:教师 * @author cheng * @date 2017年8月11日 下午6:58:50 */public class Teacher implements Callback { //持有学生类的引用 private Student student; public Teacher(Student student) { this.student = student; } /** * * @Title: request * @Description:问问题 */ public void request() { String question = "111 * 2 = ?"; student.think(this, question); } /** * 收到答案 */ @Override public void answer(String answer) { System.out.println("知道啦,你的答案是:" + answer); }}
学生类:
package demo6;/** * * @ClassName: Student * @Description:学生 * @author cheng * @date 2017年8月11日 下午7:00:39 */public class Student { /** * * @Title: think * @Description: 思考 * @param callback * @param question */ public void think(Callback callback, String question) { System.out.println("老师你的问题是:" + question); System.err.println("正在思考............."); String answer = "222"; for (int i = 0; i < 1000000000; i++) { } //回调函数 callback.answer(answer); }}
测试:
package demo6;/** * * @ClassName: ClientTest * @Description: 测试 * @author cheng * @date 2017年8月11日 下午7:06:51 */public class ClientTest { public static void main(String[] args) { Teacher teacher = new Teacher(new Student()); teacher.request(); }}
运行结果:
阅读全文
0 0
- java回调
- java回调
- java 回调
- JAVA:回调
- java 回调
- java回调
- java 回调
- Java 回调
- java回调
- Java 回调
- Java回调
- Java 回调
- Java 回调
- Java回调
- java回调
- java 回调
- Java回调
- java回调
- 偏最小二乘回归分析实例plsregress命令
- 浅析Java中的final关键字
- (UVA
- Aggressive cows(最大化最小值问题)
- java编程思想笔记-并发之CountDownLatch
- java回调
- 51nod 1240 莫比乌斯函数
- P2094 运输
- 2.3.1-分治法-归并排序
- 一个简单的防火墙(iptables)实例
- 对volatile关键字的理解
- Your project contains C++ files but it is not using a supported native build system
- 枚举——完美立方和
- Java优先级