回调接口
来源:互联网 发布:mac chrome 安装插件 编辑:程序博客网 时间:2024/06/16 19:23
当你快乐时,你要想,这快乐不是永恒的。当你痛苦时,你要想,这痛苦也不是永恒的。
本讲内容:回调接口详解
假设你公司的总经理出差前需要你帮他办件事情,这件事情你需要花些时间去做,这时候总经理肯定不能守着你做完再出差吧,于是就他告诉你他的手机号码叫你如果事情办完了你就打电话告诉他一声。
//该类用来模拟总经理 public class Manager { // 传入一个员工类的对象 public Manager(Person person) { // 想让该让员工做什么 person.doSomething(this, "整理公司文件"); } //当员工做完总经理让他做的事后就通过该方法通知总经理 public void phoneCall(String result) { System.out.println("事情" + result); } }
//该类用来模拟员工 public class Person { public void doSomething(Manager manager, String task) { // 总经理通过doSomething方法告诉员工要做什么 System.out.println("总经理要你做" + task); String result = "做完了"; // 当事情做完了我们就通过总经理公布的phoneCall方法通知总经理结果 manager.phoneCall(result); } }
public class Main { public static void main(String[] args) { // 首先我们需要一个员工 Person person = new Person(); // 其次把这个员工指派给总经理 new Manager(person); } }
打印结果:
总经理要你做整理公司文件 事情做完了
总结下满足回调的两个基本条件:
1.Class A调用Class B中的X方法
2.ClassB中X方法执行的过程中调用Class A中的Y方法完成回调
二、假设总经理、副总经理、主管、等出差前交了件事情给我去办,都要求说做完就打电话通知他们……这时我们就要定义更多类,什么总经理类啦~经理类啦~主管类啦~杂七杂八的类,但是这些杂七杂八的大爷们都要求做完事情就电话通知,每个类都会有一个类似phoneCall的方法作为回调方法,这时,我们利用面向对象的思想来看~是不是可以把这个回调方法抽象出来作为一个独立的抽象类或接口呢?多态的思想油然而生~~~鉴于JAVA接口的好处,我们就定义一个名为CallBack的接口作为回调接口,再在该接口下定义一个名为backResult的抽象方法作为回调方法,让那些总经理类啦~经理类啦~主管类啦~什么的都去实现该接口:
//回调接口 public interface CallBack { // 回调方法 public void backResult(String result); }
//该类用来模拟总经理 public class Manager implements CallBack{ // 传入一个员工类的对象 public Manager(Person person) { // 想让该让员工做什么 person.doSomething(this, "整理公司文件"); } //当员工做完总经理让他做的事后就通过该方法通知总经理 public void backResult(String result) { System.out.println("事情" + result); } }
//该类用来模拟员工 public class Person {public void doSomething(CallBack callBack, String task) {// 总经理通过doSomething方法告诉员工要做什么System.out.println("总经理要你做" + task);String result = "做完了";// 当事情做完了我们就通过总经理公布的phoneCall方法通知总经理结果callBack.backResult(result); }}
1 0
- 接口,接口回调
- android 接口 接口回调
- 接口与接口回调
- 接口与实现:接口回调与接口多态
- Java 接口参数,接口回调.
- Fragment接口回调 三 使用接口
- 接口回调
- Java:接口回调
- 接口回调
- 什么是接口回调?
- 接口回调
- java 回调接口
- 接口回调
- 接口回调
- 回调接口
- java接口回调
- 什么是接口回调?
- 接口回调
- VB RegOpenKey 返回值不为0
- 小马哥--高仿红米1S 刷机 主板型号T7215 刷机拆机主板图与开机界面图
- Install JDK on Ubuntu
- 杭电4506小明系列故事——师兄帮帮忙
- Ubuntu14.04 Grunt 搭建自动化的web前端开发环境
- 回调接口
- Java之拦截器、过滤器、监听器 — 分析比较
- 黑马程序员_文件的备份的两种操作
- 一次难忘的百度面试经历(附电话面试题)
- hdoj 3306 Another kind of Fibonacci 【矩阵快速幂】
- C++静态库与动态库
- 怎么进入 BAT 的研发部门?
- Spark MLlib SVM算法
- POJ 1704 Georgia and Bob