冒号课堂§3.4:事件驱动 - 编程入门网
:“购买喜爱的杂志可以选择频繁光顾报刊亭,也可以选择一次性订阅。浏览关注的新闻网站或博客,可以直接访问站点,也可以订阅相应的RSS。主动检查所关心的内容是否更新是流程驱动的,用订阅的方式是事件驱动的。”
句号回到本行:“Windows下的许多工作既可以在DOS下用批处理程序实现,也可以在图形界面下完成。前者不需人工干预,显然是流程驱动的;后者毫无疑问是事件驱动的。” “看来你们对这种范式很熟悉嘛。不过,它原理虽简单,威力却无穷。看似一招,实则暗藏百式,甚可幻化千招。个中精妙之处,断非一时可以尽述。”冒号不知不觉中又走进了武侠的世界。 众人听了,暗疑老冒有些言过其实。 冒号正式入题:“首当其冲的问题是:何谓事件?通俗地说,它是已经发生的某种令人关注的事情。在软件中,它一般表现为一个程序的某些信息状态上的变化。基于事件驱动的系统一般提供两类的内建事件(built-in event):一类是底层事件(low-level event)或称原生事件(native event),在用户图形界面(GUI)系统中这类事件直接由鼠标、键盘等硬件设备触发;一类是语义事件(semantic event),一般代表用户的行为逻辑,是若干底层事件的组合。比如鼠标拖放(drag-and-drop)多表示移动被拖放的对象,由鼠标按下、鼠标移动和鼠标释放三个底层事件组成。” 问号推想:“编程人员应该还能创造新的事件类型吧?” “那是当然。”冒号点点头,“还有一类用户自定义事件(user-defined event)。它们可以是在原有的内建事件的基础上进行的包装,也可以是纯粹的虚拟事件(virtual event)。除此之外,编程者不但能定义事件,还能产生事件。虽然大部分事件是由外界激发的自然事件(natural event),但有时程序员需要主动激发一些事件,比如模拟用户鼠标点击或键盘输入等,这类事件被称为合成事件(synthetic event)[1]。这些都进一步丰富完善了事件体系和事件机制,使得事件驱动式编程更具渗透性。” 冒号课堂§3.4:事件驱动(3)时间:2011-06-25 BlogJava xyz98叹号嘟哝了一句:“看来这里边还有点名堂。” “名堂多着呢!”冒号回应,“事件固然是事件驱动式编程的核心概念,但一个编程范式的独特之处绝不仅仅是一些概念,更重要的是建立于这些概念之上的思维模式。为了了解这种范式与众不同的特点,我们先看看如何利用win32的API在windows下创建一个简单的窗口——”
“没有选用Java、Visual C++、C#、VB或 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |