以手机有响铃事件举列:
- 手机可以通过响铃事件来通知关注手机的人
- 响铃事件让手机具备了通知关注者的能力
- 从手机角度看:
- 响铃要求关注者采取行动
- 通知关注者的同时,把相关消息也发送给关注者
- 从人的角度看:
- 人得到手机的通知,可以采取行动了
- 除了得到通知,还收到了事件主体者(手机)经由事件发送过来的消息 事件参数 EventArgs
- 响应事件:关注者得到通知后,检查事件参数,依据其内容采取响应的行动
- 处理事件具体所做的事情:事件处理器 Event Handler
- 如果是会议提醒:就去准备会议
- 如果是电话接入:选择是否接听
- 如果关注者在开会,直接抛弃掉事件参数,不做处理
事件的功能 = 通知 + 可选的事件参数(即详细信息)
术语约定
事件模式
事件模式本身也是一种设计模式。
事件模式有一些缺陷,例如牵扯到的元素比较多(5个),不加约束的话,程序逻辑很容易变得一团乱麻。
为了约束团队成员写代码时保持一致,把具有相同功能的代码写到固定的地方去,人们总结出一些最佳解决方案,逐渐形成了 MVC、MVP、MVVM 等程序架构模式。这些模式要求程序员在处理事件时有所为有所不为,代码该放到哪就放到哪,让程序更有条理。