看了很多回调文章,关于回调的,总是说调来调去的!
自己看了些,觉得就是一个普通的设计而已,这回调一词,估计从C叫过来的,没变个名字,从OO的角度来说,此名字不太合适,不确切。
看基本类图:
[img]http://dl.iteye.com/upload/attachment/431260/6c1adeda-1eaa-380a-ab5e-e6d53f869288.png[/img]
就是一个很简单很简单的模版设计而已!
据某说法:
C调用服务程序S中的某个函数s(),然后S再反过来调用C中的某个函数b(),对于C来说,这个b()便叫做回调函数。
好,让我们看看上面这个类图,然后翻译翻译。
假如FirstCallback里面还有个test()方法,那么:
FirstCallback 的 test() 方法中调用Serv中的methodA(),然后Serv再反过来调用FirstCallback()中的callback(),对于FirstCallback来说,这个callback()便叫做回调函数。
成立!
关于spring:
JDBCTemplate 很多人说的回调设计。
其与上面类图的对比接口为:StatementCallback
其实现子类有很多,如:ExecuteStatementCallback ,QueryStatementCallback ,UpdateStatementCallback 等等。
只是调用方不是FirstCallback本身了, 而是JDBCTemplate的update , execute , query等等方法了。
自己看了些,觉得就是一个普通的设计而已,这回调一词,估计从C叫过来的,没变个名字,从OO的角度来说,此名字不太合适,不确切。
看基本类图:
[img]http://dl.iteye.com/upload/attachment/431260/6c1adeda-1eaa-380a-ab5e-e6d53f869288.png[/img]
就是一个很简单很简单的模版设计而已!
据某说法:
C调用服务程序S中的某个函数s(),然后S再反过来调用C中的某个函数b(),对于C来说,这个b()便叫做回调函数。
好,让我们看看上面这个类图,然后翻译翻译。
假如FirstCallback里面还有个test()方法,那么:
FirstCallback 的 test() 方法中调用Serv中的methodA(),然后Serv再反过来调用FirstCallback()中的callback(),对于FirstCallback来说,这个callback()便叫做回调函数。
成立!
关于spring:
JDBCTemplate 很多人说的回调设计。
其与上面类图的对比接口为:StatementCallback
其实现子类有很多,如:ExecuteStatementCallback ,QueryStatementCallback ,UpdateStatementCallback 等等。
只是调用方不是FirstCallback本身了, 而是JDBCTemplate的update , execute , query等等方法了。