(转)Java回调实现
Java回调实现
轮询:过10分钟就到女朋友宿舍前面去看她有没有回来。没回来我就再去打游戏。
监听:我搬个凳子坐到她宿舍前,直到她回来。
回调:在她门口贴个条子:回来后请打电话至:011-1231313
Java的接口支持提供了一种获得回调的等价功能的机制。其技巧是:定义一个简单的接口,并在该接口中声明我们要调用的方法。其特点是:一个实例持有一个接口的引用
有个这样的问题:老板(Boss)让工人(Worker)干完活告诉他干的情况如何。
实际上是一个典型的回调问题,Java实现如下:
运行结果:张三 is doing working... 张三 was finished work. 老板接收到事件信息: 张三: 发生了事件 EventA! 李四 is doing working... 李四 was finished work. 老板接收到事件信息: 李四: 发生了事件 EventB! Process finished with exit code 0
工人干活完成后,自动将发生的事件汇报给老板。
当然,如果工人很多,每个人都汇报的话,老板肯定会烦,那么老板可能会下达,发生了严重问题的员工才需要汇报问题。这个时候,需要做个事件过滤。
其实观察者模式就是回调的一个实现。
转至于:http://lavasoft.blog.51cto.com/62575/90453