关于事件驱动编程

来源:互联网 发布:淘宝模特余露 编辑:程序博客网 时间:2024/05/18 02:53

关于事件驱动编程

全世界最熟悉事件驱动的程序员应该就是前端工程师了,不管是桌面前端还是web前端都是世界上最熟悉事件驱动的,以web前端为例,我们作业面可以不去想什么面向对象编程,什么jQuery框架咋用,但是为按钮,为页面元素添加相关事件操作肯定是不可缺少的,而web前端的事件处理机制就是标准的事件驱动机制,为了讲解清楚事件驱动,这里我回顾下页面里事件机制,我们开发页面事件的时候,第一步就是定一事件(定义时间就是在定义一个函数)或者说为事件定义一个动作,并把事件绑定到指定的元素上,如果我们没有触发函数上事件,那么定义好的函数也就不会执行,如果元素上的事件被触发了,定义好的函数才会执行.

关于浏览器里事件机制实现方案,具体如下:

首先我要说多线程开发里有一个经典的设计方法,这个方法就是生产—-消费模式,生产—-消费模式特点就是生产者和消费者被一个中间队列分隔开来,不管是生产请求还是消费结果都是通过这个中间队列,这样就可以把生产者和消费者关系解耦,事件实现机制从宏观上和生产—-消费模式类似,这个类似不是指设计思想,而是指沟通双方联系的哪个中间层.

事件处理的机制里应该有个事件处理器,事件处理器位于元素和事件处理方法的中间位置,我们在定义事件的时候就是等于在实践处理器里定义元素和事件处理方法的关系,当这种对应关系定义好后,事件处理器就会启动一个死循环,这个循环反复检测元素的状态变化,当事件处理器发现,某个状态发生了变化,处理器就会找到相应的事件处理方法,然后执行这个方法.

传统语言做开发的时候都是按照时间的先后顺序,这么做既可以降低语言的学习成本,也可以让开发代码思路比较容易控制,但是现实场景是复杂的,这种按时间顺序的开发流程并不一定是我们解决现实问题的最佳方式.这就好比我们做一件事情,在做的时候我们会碰到很多问题,由于发生的问题不同,那么这件事情的结果可能就会因为情况的不同而发生变化,如果按照时间顺序的变成方式向做好上面的事情就会让程序变得十分复杂,因为我们要按照时间顺序做出各种不同执行路径,这就是排列组合的办法了,这显然让事情变得复杂了,如果用事件驱动变成方式,我们只要定义好事物的起因,各种不同的过程情况,以及所能得到的结果,换句话说我们首先只要关注实体内容而忽略事务关系问题,而事务关系则是在事件处理器里定义的,当我们发送给事件处理器一个指示信号,处理器就会对应找到某个行为,那么事件驱动编程就简化了程序开发的流程.

0 0
原创粉丝点击