less than 1 minute read

最近接触到了 HibernateTemplate,用到了 HibernateCallback,决定把 callback 的逻辑关系彻底搞清楚,以前总是不明白这个 call 到底是谁 call 的谁,这个 back 到底是从哪里 back 到哪里。

要搞清楚英文原文的逻辑,还是 wikipedia 好使,反正我关键字 “回调函数” 搜了半天也没搞清楚……

In computer programming, a callback is a reference to executable code, or a piece of executable code, that is passed as an argument to other code. This allows a lower-level software layer to call a subroutine (or function) defined in a higher-level layer.

从这个解释和图来看,callback function 的指针会传递给 library function,然后 library function calls callback function, from library level back to appliaction level。callback function 实质是被回调的函数。

callback 在 MFC 中体现得很明显。我们设计的 dialog、button 什么的都是 Main program,写的 onButtonOK()、onWindowClose() 这类的事件处理函数就是 Callback function,它们都是我们开发的 Application program;MFC 底层运行机制就是 Library function,是属于 Software library 的。

这个层次关系在 HibernateTemplate 中并不是很明显,因为 HibernateCallback 也是 library 的一部分,相当于是给了 application 一个默认实现。

Categories:

Updated:

Comments