java回调
2017-08-11 20:02
141 查看
回调的思想是:
类A的a()方法调用类B的b()方法
类B的b()方法执行完毕主动调用类A的callback()方法
也就是一种双向的调用方式。
代码模拟的是这样一种场景:老师问学生问题,学生思考完毕回答老师。
教师类:
学生类:
测试:
运行结果:
类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(); } }
运行结果:
相关文章推荐
- Java的回调函数
- Java中的回调函数学习
- Thinking in Java之接口回调改版
- JAVA回调函数的理解
- java 回调的同步回调和异步回调
- Java回调的原理与实现
- Java—回调—CallBack
- Java 回调简单Demo
- Java回调机制解析
- 回调函数详解
- Java回调函数的理解[转]
- Java回调函数的理解
- java编程思想笔记-并发之CountDownLatch
- 浅析Java中的final关键字
- [置顶] (ssm流程图详解)Spring+SpringMVC+Mybatis整合开发实践
- Java基础22
- I/O多路复用技术
- 时间日期类
- 关于Spring-boot的debug调试
- Java字符串(String)