一、初步了解事件
定义:单词 Event ,译为“事件”
- 《牛津词典》中的解释是“a thing that happens,especially something important”
- 通顺的解释就是“能够发生的什么事情”
角色: 使对象或类具备通知能力的成员
- (中译)事件(Event)是一种使对象或类能够提供通知的成员
- (原文)An event is a member that enables an object or class to provide notifications.
- “对象O拥有一个事件E”想表达的思想是:当事件E发生的时候,O有能力通知别的对象
使用: 用于对象或类间的动作协调与信息传递(消息传递)
原理: 事件模型(event model)中的两个“5
- ”发生->响应“中的5个部分——闹钟响了你起床、孩子饿了你做饭…这里隐含着”订阅“关系(第5元素,比如闹钟、响了、你、起床,是4个部分;如果没有订阅关系,就没有具备通知能力)
- ”发生->响应“中的5个动作——(1)我有一个事件->(2)一个人或者一群人关心我的这个事件->(3)我的这个事件发生了->(4)关心这个事件的人会被依次通知到->(5)被通知到的人根据拿到的事件信息(又称”事件数据“、”事件参数“、”通知“)对事件进行响应(又称”处理事件“)。
提示
- 事件多用于桌面、手机等开发的客户端编程,因为这些程序经常是用户通过事件来”驱动“的
- 各种编程语言对这个机制的实现方法不尽相同
- Java 语言里没有事件这种成员,也没有委托这种数据类型。Java 的”事件“是使用接口来实现的
- MVC、MVP、MVVM 等模式,是事件模式更高级、更有效的”玩法“
- 日常开发的时候,使用已有事件的机会比较多,自己声明事件的机会比较少,所以先学使用
事件的功能 = 通知 + 可选的事件参数(即详细信息)
事件术语:
- 事件的订阅者
- 事件消息的接收者
- 事件