Live软件开发面面谈——事件

编程入门 行业动态 更新时间:2024-10-26 06:30:29

Live软件开发面面谈——<a href=https://www.elefans.com/category/jswz/34/1770959.html style=事件"/>

Live软件开发面面谈——事件

第2章  事件

在计算机科学里,事件指的是系统内发生的某件事或变化,可以被某个程序接收并处理。它可以是用户输入导致的,例如按键、单击鼠标;可以是网络通讯导致的,例如Web服务器接收到一个请求,邮件服务器收到一封邮件;也可以仅仅作为不同对象之间控制流程转移的一种手段,例如我们为程序自定义的事件。所有这些情况都被抽象出一套共同的机制,用以有效地处理事件参与者之间的互动。这个机制包含以下几个组成部分:事件的源/发布者、事件的收听者/订阅者/处理器以及收听者与发布者之间如何处理事件的协议,包括收听者用于处理事件的方法的签名、发布者传递给收听者的事件信息。事件机制在图形界面软件开发、网络编程等领域都有广泛的应用,围绕它进行的编程范式被称为事件驱动编程。

事件与编程中的许多其他概念既有联系也有区别,如控制反转(Inversion of control)、回调函数(Callback function)和观察者模式(Observer pattern)。把事件和它们放在一起讨论和比较有助于我们更清楚地理解各自的内涵和用途。之后本章将重点分析Java、C#和JavaScript三种语言中事件编程的不同实现方式和特点,以更充分地揭示事件的本质,并且例示一个理念在不同语言中相映成趣的表现形式——这既能体现理念的一般性,又极好地展示了编程语言由于设计之差异在解决问题的方式和表现力上的多样性。

2.1  控制反转

所谓控制反转,是针对程序正常的控制流程而言的。一般情况下,正在运行的函数或对象的方法调用另一个函数或对象的方法,控制也就从调用方转移到被调用方,直到被调用方运行完毕,才返回给调用方。但是某些情况下,需要被调用方中途将控制传递回调用方,这种控制转移的方向与正常方向相反的现象就称为控制反转。最常见的有以下几种情况。

  1. 被调用方需要一直运行,无法返回,而在不确定的时间又要运行调用方的逻辑。图形用户界面程序的开发就是很好的例子。程序员使用图形用户界面的通用类库里的控件创建视图,视图一直运行,收听用户操作触发的事件。用户什么时候输入文本框、点击按钮是不确定的。当这些事件发生时,视图则要通过事件的处理程序,执行项目特定的业务逻辑。
  2. 被调用方运行时间较长,调用方不愿或者不能等待被调用方执行完成。正常的控制流程下,在被调用方执行完毕返回前,调用方一直等待,即处于所谓阻塞状态。假如采用控制反转的模式,将调用方等待被调用方返回后要运行的逻辑以某种方式传递给被调用方,然后新开一个线程,让被调用方在其中运行&

更多推荐

Live软件开发面面谈——事件

本文发布于:2024-03-10 18:17:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1728687.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:事件   软件   Live

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!