1,回调的本质是自己不处理也就是自己本身的对象引用不去直接调用方法,而是让另外一个对象的引用调用。
2,再进一步,另外一个对象引用也不去直接调用本对象的方法了,而是调用本对象的中内部类实现某个接口的对象的方法。
方法名称的发展变化,由use变化为call的方法,类由两个变为了三个,再加一个接口。
这其中涉及到类方法的设计,主动式和被动式。
小明看着教室外面撒欢儿的小伙伴,不禁悲从中来。再不出去玩,这个课间就要废了啊!!!! 看着小红再一次递上来的计算器,小明心生一计:让小红代劳。
最近看了java编程思想一书,对内部类的设计感到惊叹,针对java采用内部类来实现回调比c语言更灵活(c语言通过指针来实现),下面博主分享下自己的一些心得,可能未必完全正确,如果有不对的地方,希望大家指出改正。
首先,要说的是内部类的特性,普通的成员内部类隐式链接到外部类,因此拥有外部类的所有元素的访问权的,正是因为这个特性,内部类对象也是一个闭包。闭包指的是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。利用闭包这个特性可以实现回调。回调可以简单理解为先将相关的方法实现好,但是并不由我来决定什么时候来调用它,而是通过程序在其他类对象运行时回头调用该类的方法。
参考链接:https://www.zhihu.com/question/413070798