事件,我们在生活中时时在产生事件并且做出响应,如早晨出门时,看见外面下雨了,这时候我们需要带把伞等情况!
在现实生活之中事件分为人为事件和自然事件,那么在计算机操作系统中也不例外,存在两种事件
1.人为事件:自定义事件等(如游戏引擎中节点推动节点产生的一系列事件)
2.系统事件:计算器内部触发的事件(如键盘、鼠标等事件)
一、简单事件处理方案
网络上也可以看到很多文章说到被观察者和观察者,
小白:啊!大神,我是小白,不懂,说的是什么外星语
小白别急,一步一步咱们开始深入学习,先来看一张简单的图:
触发者一但发生事件则触发,就通知接收者进行响应,要想达到这个条件,那么必须要接收者给触发者一个联系方式,编程中叫回调函数,只要我们给触发者一个回调函数的地址,那么触发者有事件时就可以调用这个回调函数了,相当于给了个接口(联系方式),例如[接收者]给[触发者]一个电话号码一样,[触发者]有事情找[接收者]了,那么直接拨打这个电话号码就可以联系到[接收者]一样的道理!
那么我们就可以推出另外一张图了,如下:
如上图中显示,那么在实际应用当中,触发者和接收者太多太多,那么每个触发者都保存接收者的联系方式,这样的负担太重,例如上图中,【B接收者】假如产生了一个事件,【A接收者】对【B接收者】这个事件感兴趣,那么这个简单模型中,【B接收者】又需要保存【A接收者】的联系方式,越来越复杂了!
二、添加中间者【派发者】
为了更好地管理派送中心,仅仅联系方式还是显得有些简陋,我们在加上一个事件类型,这样更容易区别事件!
编辑中。。。。
#include #include #include #include
Java事件通知模型:
1.有事件添加到事件队列中;
2.取事件队列中的事件进行处理