Atitit callback回调机制大总结 目录 1. 回调机制=Call back, 1 1.1. 1.为什么需要Call back 2 1.2. 模块之间的调用,调用的方式分为几种:1)同步调

Atitit callback回调机制大总结

目录

1. 回调机制=Call back 1

1.1. 1.为什么需要Call back 2

1.2. 模块之间的调用,调用的方式分为几种:1)同步调用2)异步调用(3)回调 3

1.3. ★回调函数的基本特征:上层模块中编写的,上层模块不会去调用的函数 3

2. 调用的分类 3

2.1. 阻塞式调用vs 非阻塞 3

2.2. 同步异步 4

2.3. 单向  vs 双向调用 4

2.4. 直接调用 vs 回调 4

3. 实现模式 4

3.1. Net委托 4

3.2. 接口实现回调 4

3.3. 轮训 4

3.4. 函数指针 4

4. Java的实现模式 4

4.1. 如同AddOp一样的独立的实现类 4

4.2. 可以使用匿名类(anonymous classes) 4

4.3. 可以使用λ表达式[Java 8]。 4

5. 其他 5

5.1. 使用Future+Callable的方式, 5

5.2. 等待异步线程执行结果,这相当于就是同步调用的一种变种,因为其本质还是方法返回一个结果,即学生的回答 5

1. 回调机制=Call back

也就是说,只要传递的参数不是基本类型,而是函数的指针(引用)即为回调。

一个动词词组。这是为了区别于名词 回调函数/回调方法(简称回调、callback)

因此,回调机制是编写框架/类库时需要的基本技术(回调机制/call back是框架设计的基本手段)。回调机制 =控制反转IoC。(IoC与依赖注入无关!!!)

回调机制是指编写框架/类库(或者操作系统如Windows)时,程序员所需要的、编程语言让上层模块提供代码的机制。上层模块所提供的这种代码则称为回调函数/回调方法(简称回调、callback,一个名词)。

在具有高阶函数的语言中,回调(函数)基本上是一个不需要存在的概念。

1.1. 1.为什么需要Call back

1)软件开发中分层是常用的策略,例如管理信息系统常用的逻辑三层结构——表现层、业务逻辑层和数据访问层。如果你对3层结构不熟悉,那么你知道,你编写的应用程序(application program)使用了JDK或其他框架/类库,app是上层,而JDK是下层。

yqj2065很强调分层,因为回调机制内含分层的想法,即使你在你的应用程序中也使用了回调机制但是没有分层,你事实上隐含地分了层——单向依赖。

2)回调机制是编写框架/类库时需要的基本技术(回调机制/call back是框架设计的基本手段)。

你编写类库时,除了给app直接调用的功能模块,有些模块需要app程序员提供代码支持

例如你设计一个op(double m,double n)函数,对两个double操作后返回一个double值。App程序员可能进行各种操作,如相加,比较、求幂等等。需要上层模块提供代码,这就是原因——我们需要回调机制。那么如何让app程序员提供代码,下层要如何调用(call)上层的代码呢?

1.2. 模块之间的调用,调用的方式分为几种:1)同步调用2)异步调用(3)回调

 

★一个回调函数/回调方法(简称回调、callback)是上层模块实现的,将被下层模块(反过来)“执行”的方法。

从提供回调函数的方法体的角度看,λ表达式最为简洁。因此,Java 8你肯定要学习,大家都会马上使用它。

1.3. ★回调函数的基本特征:上层模块中编写的,上层模块不会去调用的函数

1.4. 函数回调,接口回调,事件回调

2. 调用的分类

2.1. 阻塞式调用vs 非阻塞 

,调用方要等待对方执行完毕才返回。回调是一种双向调用模式

2.2. 同步异步

2.3. 单向  vs 双向调用

2.4. 直接调用 vs 回调

3. 实现模式

3.1. Net委托

3.2. 接口实现回调

3.3. 轮训

3.4. 函数指针

4. Java的实现模式

4.1. 如同AddOp一样的独立的实现类

4.2. 可以使用匿名类(anonymous classes)

4.3. 可以使用λ表达式[Java 8]。

java中回调函数的实现:

java不支持指针,但是可以通过定义接口的方式实现回调。

定义一个只有回调函数的接口,并将该接口对象传递给调用函数,则在调用函数执行时,会执行回调函数。

5. 其他

5.1. 使用Future+Callable的方式,

5.2. 等待异步线程执行结果,这相当于就是同步调用的一种变种,因为其本质还是方法返回一个结果,即学生的回答

2)使用异步回调

什么是回调机制(Call back) - CSDN博客.html

ASP.NET 回调技术(CallBack) - 易尔购 - 博客园.html

C++如何至少用三种方法实现回调机制? - C_C++-ChinaUnix.net.html

使用Java 8CompletableFuture实现函数式的回调.html

原文地址:https://www.cnblogs.com/attilax/p/15197578.html