File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ## 事件队列
2+
3+ ### 定义
4+
5+ 事件队列在队列中按先入先出的顺序存储一系列通知或请求。 发送通知时,将请求放入队列并返回。 处理请求的系统之后稍晚从队列中获取请求并处理。 这解耦了发送者和接收者,既静态又及时。
6+
7+ ### 场景
8+
9+ 1 . [ 通信] ( ./Assets/DecouplingPatterns/EventQueue )
10+
11+ ### 案例
12+
13+ [ 通信] ( ./Assets/DecouplingPatterns/EventQueue )
14+
15+ ### 实现方式
16+
17+ 1 . 制定消息类型,内容格式
18+ 2 . 创建消息队列
19+ 3 . 添加监听事件
20+ 4 . 传递事件
21+ 5 . 激活对应方法
22+
23+ ### 优缺点
24+
25+ ** 优点**
26+
27+ * 解耦发送者和接收者
28+
29+ ** 缺点**
30+
31+ ### 与其他设计模式的关系
32+
33+ - 我在之前提到了几次,很大程度上, 这个模式是广为人知的** 观察者模式** 的异步实现。
34+
35+ - 就像其他很多模式一样,事件队列有很多别名。 其中一个是“消息队列”。这通常指代一个更高层次的实现。 事件队列在应用* 中* ,消息队列通常在应用* 间* 交流。
36+
37+ 另一个术语是“发布/提交”,有时被缩写为“pubsub”。 就像“消息队列”一样,这通常指代更大的分布式系统,而不是现在关注的这个模式。
38+
39+ - 很像GoF的** 状态模式** ,需要一个输入流。如果想要** 异步响应** ,可以考虑用队列存储它们。
40+
41+ 当你有一对状态机相互发送消息时,每个状态机都有一个小小的未处理队列(被称为一个* 信箱* ), 然后你需要重新发明[ actor model] ( http://en.wikipedia.org/wiki/Actor_model ) 。
Original file line number Diff line number Diff line change @@ -4,47 +4,7 @@ Unity实现《游戏编程模式》
44# 解耦模式
55-
66
7- ## 事件队列
8-
9- ### 定义
10-
11- 事件队列在队列中按先入先出的顺序存储一系列通知或请求。 发送通知时,将请求放入队列并返回。 处理请求的系统之后稍晚从队列中获取请求并处理。 这解耦了发送者和接收者,既静态又及时。
12-
13- ### 场景
14-
15- 1 . [ 通信] ( ./Assets/DecouplingPatterns/EventQueue )
16-
17- ### 案例
18-
19- [ 通信] ( ./Assets/DecouplingPatterns/EventQueue )
20-
21- ### 实现方式
22-
23- 1 . 制定消息类型,内容格式
24- 2 . 创建消息队列
25- 3 . 添加监听事件
26- 4 . 传递事件
27- 5 . 激活对应方法
28-
29- ### 优缺点
30-
31- ** 优点**
32-
33- * 解耦发送者和接收者
34-
35- ** 缺点**
36-
37- ### 与其他设计模式的关系
38-
39- - 我在之前提到了几次,很大程度上, 这个模式是广为人知的** 观察者模式** 的异步实现。
40-
41- - 就像其他很多模式一样,事件队列有很多别名。 其中一个是“消息队列”。这通常指代一个更高层次的实现。 事件队列在应用* 中* ,消息队列通常在应用* 间* 交流。
42-
43- 另一个术语是“发布/提交”,有时被缩写为“pubsub”。 就像“消息队列”一样,这通常指代更大的分布式系统,而不是现在关注的这个模式。
44-
45- - 很像GoF的** 状态模式** ,需要一个输入流。如果想要** 异步响应** ,可以考虑用队列存储它们。
46-
47- 当你有一对状态机相互发送消息时,每个状态机都有一个小小的未处理队列(被称为一个* 信箱* ), 然后你需要重新发明[ actor model] ( http://en.wikipedia.org/wiki/Actor_model ) 。
7+ -
488
499## 服务定位器
5010
Original file line number Diff line number Diff line change 2121 - [ 类型对象] ( ./GameProgrammingPatterns/TypeObject.md )
2222- 解耦模式
2323 - [ 组件模式] ( ./GameProgrammingPatterns/Component.md )
24- - [ 事件队列] ( ./GameProgrammingPatterns/ )
24+ - [ 事件队列] ( ./GameProgrammingPatterns/EventQueue.md )
2525 - [ 服务定位器] ( ./GameProgrammingPatterns/ )
2626- 优化模式
2727 - [ 数据局部性] ( ./GameProgrammingPatterns/ )
You can’t perform that action at this time.
0 commit comments