【C#学习】20事件详解(上) 初步了解事件,事件模型的基本理论


在这里插入图片描述

1.什么是事件?

事件是一种类型成员,可以把它理解为【能够发生的什么事】
属性,事件,方法,是最重要的三种类型成员;其中,属性的作用是:存储数据;方法的作用是:逻辑运算;而事件的作用是:使类或者对象具备通知能力

举例:手机有响铃这个事件
手机可以通过响铃这个事件来通知关注手机的人,也可以说【响铃这个事件让手机具备了通知能力】;伴随着通知,很多事件发生时会产生一些与事件本身相关的数据,比如智能手机响铃时,一定会附带一些其他的消息:新短信,新邮件,电话打进来等;
以手机的角度:它是在完成通知关注者的同时,把相关的消息发送给关注者
以关注者的角度:他除了被通知之外,还收到了事件的主体(手机)发送出来的与事件本身相关的数据(消息),从而采取一些行为

微软规定:
经由事件发送出来的与事件本身相关的数据称为【事件参数(EventArgs)
根据通知和事件参数采取行动的行为称为【响应事件(或 处理事件)
处理事件时具体所作的事情称为【事件处理器(Event Handler)

只管通知,没有事件参数的事件,也是存在的
比如说:红绿灯,报警器
这类事件,无需额外消息,事件发生的本身就足以说明一切了

事件的功能 = 通知(别的对象或类)+ 可选的事件参数(即 详细信息)
“内容决定形式,功能决定使用方法” ,所以,事件的功能就决定了它在程序中的使用方法,必然是:用于对象或者类间的动作协调与信息传递(消息推送)

“XX对象拥有一个XX事件”
指这个对象可以通过它的事件来通知别的对象,事件一发生,关心着这个事件的对象们就会被依次通知到,然后纷纷作出响应,统一协调地运作起来,从而使程序正常运转

2.事件模型的原理

事件模型又称为【发生–响应模型】,事件模型有两个5

(1)事件模型的5个组成部分

举例:
闹钟响了大宝起床
<1>事件的拥有者:闹钟
<2>事件:闹钟响铃
<3>事件的响应者:大宝
<4>事件处理器:起床
<5>订阅事件
第<5>部分,是隐含的 “订阅” 关系,为什么别人闹钟响了大宝不起床呢?是因为大宝只关心自己的闹钟,只订阅了自己的闹钟的响铃事件

(2)事件模型在构建和运作时的5个步骤

<1>我有一个事件
<2>一个人或一群人关心我的这个事件(订阅)
<3>我的这个事件发生了
<4>关心这个事件的人会被依次通知到(通知的次序就是订阅的次序:先订阅先被通知,后订阅后被通知)
<5>被通知到的人根据拿到的事件信息对事件进行响应(处理事件)

3.术语约定

(1)事件的订阅者,又称

  • 事件消息的接收者
  • 事件的响应者
  • 事件的处理者
  • 被事件所通知的对象

(2)事件参数,又称

  • 事件信息
  • 事件消息
  • 事件数据

4.补充

MVC,MVP,MVVM等程序架构模式,会约束程序员在处理事件时,做到 :有所为,有所不为;代码该放在哪里就放在哪里,使程序具有清晰的结构和条理

发布了29 篇原创文章 · 获赞 3 · 访问量 939

猜你喜欢

转载自blog.csdn.net/weixin_44813932/article/details/104014025