快速业务通道

冒号课堂§3.4:事件驱动 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

冒号课堂§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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号