换个角度看待回调
2017-01-09 14:00
302 查看
关于回调,在网上有很多的说法,大多解释什么是“回调”,以及回调的作用,一般从异步调用或者流程控制多态等应用角度进行说明。所有我们来聊点其它的,说说在技术层面的事。
首先,来看一下普通函数和回调函数的区别。
普通函数的参数是其它的基本类型或者引用类型。
回调函数的参数除了其它的基本类型或者引用类型,还必须有一个调用这个函数的引用类型作为参数。
所以,区分普通函数和回调函数的方式就是看是否包含了一个调用这个函数的引用类型的参数。
这个特殊的参数会带来什么样的改变?
唯一的变化就是,可以在回调函数里面通过这个特殊参数调用“原始类(调用回调函数的方法锁所在的类)”的所有方法。
那么,这有什么用?
假设如下场景:
有一个类A,A当中有1,2,3,4,5,6六个方法。本来的执行顺序是1,2,3,4,5,6。这时在执行到3的时候调用了B的某个回调方法,这个回调方法最后指定调用A的方法6,这时4,5实际是没有执行的。
另外一个场景:
同样一个类A,A当中有1,2,3,4,5,6六个方法。在执行到3的时候调用了B的某个回调方法,这个回调方法根据运行结果的不同分别调用A的4,5,6。
所以,所谓回调,就是提供了一种调用“对回调函数进行调用的类”的方式。这种方式能够一定程度上改变业务的流程。
首先,来看一下普通函数和回调函数的区别。
普通函数的参数是其它的基本类型或者引用类型。
回调函数的参数除了其它的基本类型或者引用类型,还必须有一个调用这个函数的引用类型作为参数。
所以,区分普通函数和回调函数的方式就是看是否包含了一个调用这个函数的引用类型的参数。
这个特殊的参数会带来什么样的改变?
唯一的变化就是,可以在回调函数里面通过这个特殊参数调用“原始类(调用回调函数的方法锁所在的类)”的所有方法。
那么,这有什么用?
假设如下场景:
有一个类A,A当中有1,2,3,4,5,6六个方法。本来的执行顺序是1,2,3,4,5,6。这时在执行到3的时候调用了B的某个回调方法,这个回调方法最后指定调用A的方法6,这时4,5实际是没有执行的。
另外一个场景:
同样一个类A,A当中有1,2,3,4,5,6六个方法。在执行到3的时候调用了B的某个回调方法,这个回调方法根据运行结果的不同分别调用A的4,5,6。
所以,所谓回调,就是提供了一种调用“对回调函数进行调用的类”的方式。这种方式能够一定程度上改变业务的流程。
相关文章推荐
- 程序员从美学角度来看待编写的代码
- 程序员从美学角度来看待编写的代码
- MIT18.06线性代数课程笔记2a:矩阵相乘的三种看待角度
- 学生角度看待CSDN-2014开源技术大会
- 低调的华丽:从服务器开发的角度认识 asp.net 中的回调技术
- 从汇编角度看待数组名和指针
- Unix编程笔记疑问篇----如何从指令运行的角度去看待系统调用???
- 从意思准度和重叠性角度看待中文、…
- 从汇编的角度看待变量类型与sizeof的机制
- 逆向角度看待数据库事物ACID模型
- 另一种角度来看待zookeeper
- 从系统论的角度看待软件设计开发模式
- 从汇编的角度看待const与#define
- 以测量平差的角度看待机器学习中的回归问题
- 客户的极不满意是怎么产生的——从一个客户兼技术支持的角度看待售后服务的质量[叙述篇]
- 站在集成平台的角度去看待医院系统的查询需求
- 看待历史角度的进步
- Android 虚拟摇杆,多种模式回调,返回距离级别,方向,角度。
- 客户的极不满意是怎么产生的——从一个客户兼技术支持的角度看待售后服务的质量[评论篇]
- 从开发的角度看待bug