文档章节

回调函数

c
 chuiyuan
发布于 2014/07/26 15:56
字数 306
阅读 12
收藏 0

所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。

由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Java的RMI都用到回调机制,可以访问远程服务器程序。

画图中如下 

对于C来说 ,B就是回调函数。

C不会自己调用 B,提供 B的目的 就是让S来调用,而且 是C不得不提供 的。

例子:

客户程序如下, 要回调自己的方法 method( )

public class B implements MyCallerInterface {

	public void method() {
		// TODO Auto-generated method stub
		System.out.print("回调");
	}
	
	public static void main(String args []){
		Caller call= new Caller();
		call.setCallfuc(new B());
		call.call();
	}

}

在服务端约定的相应的接口是

public interface MyCallerInterface {
	public void method();
}

服务端程序为

public class Caller {
	public MyCallerInterface mc ;
	
	public void setCallfuc(MyCallerInterface mc ){
		this.mc =mc ;
	}
	
	public void call (){
		this.mc.method();
	}

}


© 著作权归作者所有

c
粉丝 9
博文 92
码字总数 40993
作品 0
海淀
私信 提问
读Zepto源码之Callbacks模块

Callbacks 模块并不是必备的模块,其作用是管理回调函数,为 Defferred 模块提供支持,Defferred 模块又为 Ajax 模块的 风格提供支持,接下来很快就会分析到 Ajax模块,在此之前,先看 Call...

sshpp
2017/07/24
0
0
zg手册 之 twisted 开发(2)-- Deferreds 组件

Deferreds 异步回调序列 Deferred 本质上是一个回调函数的集合,twisted 提供了对函数延迟调用的机制。 在 twisted 内部,使用 Deferred 对象管理回调序列。当异步请求结果返回时,使用 Defe...

东昕
2014/06/24
176
0
前端全栈工程化开发专题 — JS中回调函数的深入解读

1、回调函数核心原理分析 js中的定时器及动画 完整版动画库封装 回调函数初步讲解 扩展更多的运动方式(非匀速) options对象参数的应用 ... 什么是回调函数? 把一个函数当做实参值传递给函...

我是家碧
2018/12/13
0
0
是 promise chain 解决了回调地狱,而不是只靠 promise

前言 最近因为对 promise 的状态依赖理解有偏差,导致在开发过程中花费了3个小时的时间才发现错误。感觉浪费时间了,所以结合标准及实践结果对 promise 的状态依赖做了一个总结。 问题代码大...

苏进取
07/11
0
0
nodejs fs模块

fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd)); fs.read(文件句柄fd,被写入的buffer,offset,length,position,回调函数(err, bytesRead, buffer)); fs.close(文件句...

r_yaya
2016/01/20
52
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
17
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
5
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.5K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部