学习Spring必须了解的基础知识——回调机制
上面这张图如果能看得懂就能理解什么是回调机制:
A对象在调用a()方法时会调用B对象的b()方法,b()方法必须能调用A对象的callback()方法。
谁白了:a()方法有B对象b()方法的引用,b()方法有对a对象中callback()的引用。
| package priv.lirenhe.callback; public interface CallBack { public void claimAnswer(String answer); } |
| package priv.lirenhe.callback; public interface TeacherA { public void askQuestion(StudentB student); } |
| package priv.lirenhe.callback; public class TeacherAImpl implements CallBack,TeacherA{//实现CallBack类从而实现claimAnswer方法 public TeacherAImpl() { // TODO Auto-generated constructor stub } @Override public void claimAnswer(String answer) { System.out.println("该同学的答案是:"+answer); } @Override public void askQuestion(StudentB student){//有对对象B的引用 student.resolveQues(this); } } |
| package priv.lirenhe.callback; public interface StudentB { public String resolveQues(CallBack callBack); } |
| package priv.lirenhe.callback; public class StudentBImpl implements StudentB { public StudentBImpl() { // TODO Auto-generated constructor stub } @Override public String resolveQues(CallBack callBack) {//有CallBack对象的应用 String answer = "你去死"; callBack.claimAnswer(answer); return answer; } } |
| package priv.lirenhe.callback; public class TestCallBack { public TestCallBack() { // TODO Auto-generated constructor stub } public static void main(String[] args) { StudentBImpl studentB = new StudentBImpl(); TeacherAImpl teacherA = new TeacherAImpl(); teacherA.askQuestion(studentB); } } |
学习Spring必须了解的基础知识——回调机制的更多相关文章
- 学习 shell脚本之前的基础知识
转载自:http://www.92csz.com/study/linux/12.htm 学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写sh ...
- 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...
- IOS学习之路--OC的基础知识
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...
- 学习shell脚本之前的基础知识
日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位 ...
- Python学习系列(二)(基础知识)
Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...
- Spring笔记01(基础知识)
1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现“一站式”的企业应用开发 ...
- 大数据学习笔记——Java篇之基础知识
Java / 计算机基础知识整理 在进行知识梳理同时也是个人的第一篇技术博客之前,首先祝贺一下,经历了一年左右的学习,从完完全全的计算机小白,现在终于可以做一些产出了!可以说也是颇为感慨,个人认为,学 ...
- 2.Docker容器学习之新生入门必备基础知识
0x02 Docker 核心概念 描述:Docker的三大核心概念镜像/容器和仓库, 通过三大对象核心概念所构建的高效工作流程; 1.镜像 [image] 描述:images 类似于虚拟机镜像,借鉴了 ...
- Spring的事务管理基础知识
1.数据库事务基础知识 1)数据库事务有严格的定义,它必须同时满足4个特性:原子性(Atomic).一致性(Consistency).隔离性(Isolation)和持久性(Durability ...
随机推荐
- Laravel-Excel 导入 Excel 文件----为什么只获取到最后一行数据?
### 今天使用了Laravel-Excel 到类文件,想做一个excel 文件到导入和导出,但是看了 官方到文档示例,自己做了一下,发现 只取到到最后一行到数据, 有点摸不着头脑! 网上找了一下, ...
- 【原创】大叔问题定位分享(33)beeline连接presto报错
hive2.3.4 presto0.215 使用hive2.3.4的beeline连接presto报错 $ beeline -d com.facebook.presto.jdbc.PrestoDriv ...
- appium+java(七)图片的放到及缩小操作
多点触控(MultiTouch) MultiTouch对象是触摸操作的集合. 多点触控手势只有两个方法,add和perform. add 用于将不同的触摸操作添加到当前的多点触控中. 当 perfor ...
- liux三剑客grep 正则匹配
001正则匹配(大部分需要转义) ‘^‘: 锚定行首 '$' : 锚定行尾 [0-9] 一个数字 [^0-9] 除去数字所有,^出现在[]这里表示取反 [a-z] [A-Z] [a-Z] \s 匹配空 ...
- vue——router
1.不同界面传参 <router-link :to="{path:'地址'},query:{name:val}">, 其它界面获取: this.$route.query ...
- 信息摘要算法之五:HMAC算法分析与实现
MAC(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也经常被称作HMAC算法. ...
- 五.Bash Shell编程基础入门实战
知识回顾 运行脚本我们一般用sh 不用单独去加执行权限 OLDBOY=10只适用当前环境 局部变量 export OLDBOY把它设置为临时的环境变量应为已经=10了所以不用export OLDBOY ...
- servlet 遇到的奇怪问题
一. servlet URl 连接多了 %09 原因value里面多了个空格 value=" value'; 改成 value="value'; 二.servlet get方法可以 ...
- laravel 迁移枚举
$table->enum('type', ['replace', 'warning'])->comment('类型');
- laravel 5 优化
性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能. 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论. 这里是简单的列表: 配 ...