- 论坛徽章:
- 0
|
本帖最后由 serenemoon 于 2015-08-28 15:07 编辑
我的理解:
两个人,一个人叫Server,一个人叫Client。
Server确定的知道自己会遇到一些特定的事件, //虽然不确定这些事件会在什么时间发生
而且他每遇到一个特定的事件就拿出该事件对应的一张卡片, //他会遇到特定的事件,身上就有对应张卡片,暂且认为这假设是真的
然后他会看看这个卡片上面写了些什么,
然后呢就会按照这张卡片上的指示去完成纸片上的‘‘要求’’, // 通常Client会告诉Server遇到哪种事件要做什么事情
但如果纸片上什么都没写,那就当这个事件没有发生好了。 // 当然Client也可以忽略Server可能会遇到的某些事件,Server就当其没发生好了。
Client在知道Server会遇到哪些事件后, // 比如图形编程的话,每个控件可能会触发的事件,单击、双击、键入字母等等
会根据自己的需求,在特定事件对应的卡片上写上去‘‘要求’’, // 这通常就是把Client自己写的一个函数名,通过调用Server给的API传递给Server,Server会把函数名写在卡片上,遇到事件时再去执行这个函数。
如果Client对特定事件不感冒,那Client就不管这个事件了。 // 我也不晓得Server在遇到卡片上没写要求时是否有默认的操作,但这都是Server的设计者应该考虑的问题。
如果有一个人(Server)他什么都不管,
只是会在每天的 7:00, 12:00, 18:00 看一下自己身上带着的3张卡片,//特定的事件
然后依卡片指示去做相应的事情, // 执行事件对应的要求
而且他身上还带了一支笔和橡皮, // 往卡片上写要求要用到,即设置回掉函数的API
别人可以往卡片上写要求,也可以擦出要求。// 把自己的需求写到卡片上,即把要求写成个函数,再把调用API把函数名告诉Server。
我觉得就是这个样子了。
PS:忘了说了,上面写到的 ‘‘要求’’ 其实就是 回调函数。
callback: it means "I am going to sleep for a while, when 'something' happens, just call me back, and I will take care of 'something'." |
|