对于接口回调的简单理解
2016-12-30 20:19
323 查看
接口回调在实际的应用中可以说是无处不在的,比方说你向服务器请求一个数据,请求结束的时候你需要在界面上进行一个显示,当然你可以选择一直等待,但是这样做效率实在是太低,并如果你在android 的Activity中等待的话很有可能会导致程序崩溃。这时候你就需要接口回调了。
下面就来简单介绍一下接口回调的简单概念,
构成接口回调有以下的几个要素:
整个机制构成三要素就是:我(客户端),你(服务端),约定(接口)
Java 中没有函数指针这一说,因为java没有指针,但是并不代表着它不会使用这个功能。事实上,引用就是实现了指针的功能。
回调方法就是一个通过方法指针来调用的方法。如果我将这个方法的指针(地址,引用)通过形参传递到另一个类的某个方法里,那么当这个类调用该方法里面我所传入的指针时,就能调用我这边的方法。
主要步骤:
* 定义接口 Callback ,包含回调方法 callback();
* 服务端提供注册的方法,并设定在某个条件下会回调接口方法;
* 客户端提供接口的实现方法,并注册到服务端,把方法地址传进去。
先来看一个最基本的回调:
public class Me
{
public Me(You you)
{
// TODO Auto-generated constructor stub
you.dosth(this,"整体公司文件");
}
public void doresult(String result)
{
System.out.println("事情"+result);
}
}
public class You {
public void dosth(Me me, String task) {
// TODO Auto-generated method stub
System.out.println("你要我做"+task);
String result="做完,搞定";
me.doresult(result);
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
You you=new You();
new Me(you);
}
}
首先me类调用了you类中的dosth()方法,you类再在dosth()方法中回调me类中的doresult()方法。
这时候如果除了me还有其他的人向你发出请求,那么这时候就需要定义一个回调接口,让所有发出请求的类都实现这个接口。
说到底回调思想还是用到了java中多态的概念
。
下面就来简单介绍一下接口回调的简单概念,
构成接口回调有以下的几个要素:
整个机制构成三要素就是:我(客户端),你(服务端),约定(接口)
Java 中没有函数指针这一说,因为java没有指针,但是并不代表着它不会使用这个功能。事实上,引用就是实现了指针的功能。
回调方法就是一个通过方法指针来调用的方法。如果我将这个方法的指针(地址,引用)通过形参传递到另一个类的某个方法里,那么当这个类调用该方法里面我所传入的指针时,就能调用我这边的方法。
主要步骤:
* 定义接口 Callback ,包含回调方法 callback();
* 服务端提供注册的方法,并设定在某个条件下会回调接口方法;
* 客户端提供接口的实现方法,并注册到服务端,把方法地址传进去。
先来看一个最基本的回调:
public class Me
{
public Me(You you)
{
// TODO Auto-generated constructor stub
you.dosth(this,"整体公司文件");
}
public void doresult(String result)
{
System.out.println("事情"+result);
}
}
public class You {
public void dosth(Me me, String task) {
// TODO Auto-generated method stub
System.out.println("你要我做"+task);
String result="做完,搞定";
me.doresult(result);
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
You you=new You();
new Me(you);
}
}
首先me类调用了you类中的dosth()方法,you类再在dosth()方法中回调me类中的doresult()方法。
这时候如果除了me还有其他的人向你发出请求,那么这时候就需要定义一个回调接口,让所有发出请求的类都实现这个接口。
public interface Bound { public void doresult(String s); } public class Me implements Bound { public Me(You you) { // TODO Auto-generated constructor stub you.dosth(this,"整体公司文件"); } public void doresult(String result) { System.out.println("事情"+result); } } public class You { public void dosth(Bound me, String task) { // TODO Auto-generated method stub System.out.println("你要我做"+task); String result="做完,搞定"; me.doresult(result); } } public class Test { public static void main(String[] args) { // TODO Auto-generated method stub You you=new You(); new Me(you); } }
说到底回调思想还是用到了java中多态的概念
。
相关文章推荐
- Android回调接口简单理解
- 最简单的方式理解“接口回调”的设计
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 对于Android中接口回调机制的理解
- 最简单的方式理解“接口回调”的设计
- 对于父类上转型和接口回调的理解
- 最简单的方式理解“接口回调”的设计
- Android接口回调,最简单的理解方式
- 简单的实例理解接口的伟大意义
- Java中对于回调函数的简单理解
- c++关于封装、接口的简单理解
- 简单理解接口
- 简单理解接口和抽象类
- 简要谈谈对于usaco上面一些简单题目的理解第一篇之milking cows篇(1)
- 接口与抽象类(简单理解)
- 对于GridView的简单理解!
- 对于接口的理解
- java 中对于接口的理解和我对java 的一些理解
- 根据个人理解简单介绍接口和抽象类的区别
- 接口回调演示代码-我自己的理解,可能不准确