冒号课堂§3.4:事件驱动 - 编程入门网
冒号课堂§3.4:事件驱动时间:2011-06-25 BlogJava xyz98第三课 常用范式(4) 3.4事件驱动——有事我叫你,没事别烦我 劳心者治人,劳力者治于人 ——《孟子·滕文公上》 关键词:编程范式,事件驱动式,回调函数,framework,IoC,DIP,观察者模式 摘要:事件驱动式编程简谈 ?提问 什么是事件?有哪些不同类型的事件? 什么是回调函数?什么是异步同调?它们有什么用处? 控制反转的目的是什么?它是如何实现的?在框架设计中起什么作用? 控制反转、依赖反转原则和依赖注射的共同点是什么? 事件驱动式编程有哪些关键步骤? 异步过程特点和作用是什么? 事件驱动式编程最重要的特征是什么?它们是如何实现的? 事件驱动式与观察者模式、MVC模型有何关系? :讲解 逗号渐觉睡虫上脑,开始闭目点头。正神游之际,忽觉腰间一阵酥麻。惺眼微睁,原是被引号的胳膊肘给捅的,顿时警醒。抬头见讲台上的老冒正目光灼灼地盯着自己,不禁脸颊微烫,嗫嚅道:“不好意思,昨晚睡得太晚了。” 冒号却不以为意:“正愁找不到新话题呢,你倒启发我了。话说课堂上睡觉大抵有三种方式——” 话音未落,有人已笑不自禁。 “第一种是警觉式:想睡可又担心被老师发现,不时睁眼查看周围的变化。同时双耳保持警戒,一有异动立刻挺直身板。”冒号有板有眼地形容,“第二种是宽心式:俯桌酣睡,如处无人之境。境界至高者或可雷打不动,或可鼾声如雷。” “总之是很雷人。”叹号的网络新语再度引发笑声。 冒号继续分析:“第三种是托付式:请人放哨,非急勿扰。遂再无顾忌,大可封目垂耳,安心入眠。请问你们乐意采用哪种方式?” “第一种方式睡不踏实,不得已而为之。敢用第二种方式的人多半没心没肺,估计IT人都达不到那种境界。只要有同伴在身旁,我想大家都会选第三种方式的。”句号的回答获得一致认同。 冒号续问:“好,抛开第二种方式不谈,为什么第三种要比第一种优越呢?” 句号回答:“犯困者既要打盹又要警戒,必然苦不堪言。如果把警戒的任务委托同伴,两人分工合作,自然愉快得多。” 冒号课堂§3.4:事件驱动(2)时间:2011-06-25 BlogJava xyz98冒号再问:“他们是如何合作的呢?” “放哨者一旦发现有情况,立即通知犯困者采取行动——睁眼坐直,作认真听讲状。”句号说得是绘声绘色。 除了两位当事人略显尴尬外,其他人均乐不可支。 眼见时机成熟,冒号不再兜圈:“采用警觉式者主动去轮询(polling),行为取决于自身的观察判断,是流程驱动的,符合常规的流程驱动式编程(Flow-Driven Programming)的模式。采用托付式者被动等通知(notification),行为取决于外来的突发事件,是事件驱动的,符合事件驱动式编程(Event-Driven Programming,简称EDP)的模式。下面我们就来说说这种编程范式。” 逗号瓮声瓮气道:“没想到打瞌睡打出了个范式。” 冒号瞥了他一眼,继续说下去:“为完成一样事,既可以采用流程驱动式,也可以采用事件驱动式。这样的例子在生活中可谓俯拾即是,刚才逗号同学为大家现场示范了一个,谁还能举出其他范例?” 叹号抢先举例:“与客户打交道,推销员主动打电话或登门拜访,他的工作是流程驱动的;接线员坐等电话,他的工作是事件驱动的。” 问号也说:“同样是交通工具,公共汽车主要是流程驱动的,它的路线已预先设定;出租车主要是事件驱动的,它的路线基本上由随机搭载的乘客所决定。” 引号以个人经验作例 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |