本文主要是自己对于回调的一些总结记录,如果有错误欢迎大家指正。
程序从调用方式上可以分为三类:同步调用、回调和异步调用(另开辟线程调用),本文主要讨论回调。
个人感觉,回调很像设计模式中的strategy策略模式,原因如下:
首先,定义一个回调接口:
public interface CallBack { public void exec(); }
定义一个Client类实现该接口:
public class Client implements CallBack{ public void exec() { System.out.println("Client execute..."); } }
Server类持有Callback接口:
public class Server { private CallBack callback; public void setCallBack(CallBack callback){ this.callback=callback; } public void post(){ callback.exec(); } }
使用方式:
CallBack callback=new Client(); server.setCallBack(callback); //服务器端运行... System.out.println("Server is running..."); System.out.println("Server running finish,call Client..."); server.post();//call
其中,CallBack接口类似于strategy中定义的如何调用算法的接口,Client类似于strategy中的算法实现类,Server类似于strategy中的策略使用类。
也就是说,上面这个回调例子其实就是只有一个算法的strategy模式的实现,不知道这么说是否合理。
另一种回调方式是通过匿名内部类:
//通过匿名内部类的回调 Server server=new Server(); server.setCallBack(new CallBack(){//注册客户端 public void exec(){ System.out.println("No Name Client execute......"); } }); //服务器端运行... System.out.println("Server is running..."); System.out.println("Server running finish,call Client..."); server.post();//call
其中,new CallBack(){...}即声明了一个实现CallBack接口的匿名内部类(以替代Client类实现),并且实现了exec方法。
在JDK类库中经常看到一些用于事件监听的Listener接口,大部分使用时都是这种匿名内部类方式(比如Swing和AWT类库中很多图形界面上的事件监听)。
相关推荐
关于回调函数很好的总结,对回调函数的理解会有帮助。
七、关于回调Funciton 你可以把Callback函数看作是一种特殊的消息响应函数,一般来说我们不会自己调用这种函数, 而是有某些系统函数调用,而且不需要向后传递消息。 只要象C/C++这样支持函数指针的语言都 有回调...
这个程序是我在理解回调函数时编写的一个Demo. 里面包含了三部分: 1.回调函数 2.观察者模式 3.代理模式 配套有CSDN博文:关于回调函数的理解,以及观察者模式,代理模式
关于回调函数的基本概念和使用技巧. 个人觉得不错. 当然了. 网上可以搜到更好的,
里面关于VC中回调函数的使用,定时器的使用,这是我在项目中的总结
当然,即使开头的关于回调的英文概念被翻译成了中文,不少人仍觉得难以理解简单来说,回调就是 A 类调用 B 类中的 X 方法,B 类中的 X 方法执行过程中反过来
主程序用回调函数作为参数,调用DLL窗口,在DLL窗口中使用回调函数,反写主程序信息,实例中用DLL的编辑框反写主程序编辑框的内容
###Android的跨进程通信---------aidl 做android也有一段时间了,一直没有在博客中去做过这样的总结,刚好这段...以前只是单纯的绑定,基本上没有用到server和Client之间的回调,以及也没有用到过于复杂对象的序列化。
替代代码执行这种方法的受欢迎程度超出了预期,因此我只是想对alfarom256进行喊叫,以便向我介绍cal替代代码执行这种方法的受欢迎程度超过了预期,因此我只是想对alfarom256进行喊叫,以通知我关于回调函数,并向我...
关于Java线程间通信-回调
自己整理写的关于message.alert回调,不喜欢的勿扰~!
关于回调函数中变量作用域的讨论精品推荐,大家可以参考下。
之前有转一篇关于回调函数的文章 钩子函数、注册函数、回调函数,他们的概念其实是一样的。 钩子函数,顾名思义,就是把我们自己实现的hook函数在某一时刻挂接到目标挂载点上。 1. hook函数,就是我们自己实现的...
这里写的是一个Android接口回调的Demo,如果对接口回调不太理解、或者不太会用的话,相信看完这个简单的demo,便会解决你的问题
关于C++回调函数的一些解释以及相关的实例,推荐给希望对回调函数作初步了解的读者。
本文写的主要是一个关于okhttp的网络框架的简繁封装,提供给新手朋友,欢迎关注我的博客
Java接口回调一般用法:实现接口实际上和继承抽象类类似,只不过继承是... 接口的一大作用是实现回调,回调分同步回调和异步回调,区别是异步回调使用了多线程技术,当回调中有耗时操作时,需要使用异步回调。 以
C#实现的一个关于WCF回调的程序,包括服务端,宿主,以及客户端调用。很全面的一个WCF程序,希望能帮助有需要的同学
主要介绍了详解关于微信setData回调函数中的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧