Skip to content

Commit 4320ffc

Browse files
committed
add EventQueue.md
1 parent 8659d49 commit 4320ffc

3 files changed

Lines changed: 43 additions & 42 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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)

GameProgrammingPatterns/README_GameProgrammingPatterns.md

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff 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

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
- [类型对象](./GameProgrammingPatterns/TypeObject.md)
2222
- 解耦模式
2323
- [组件模式](./GameProgrammingPatterns/Component.md)
24-
- [事件队列](./GameProgrammingPatterns/)
24+
- [事件队列](./GameProgrammingPatterns/EventQueue.md)
2525
- [服务定位器](./GameProgrammingPatterns/)
2626
- 优化模式
2727
- [数据局部性](./GameProgrammingPatterns/)

0 commit comments

Comments
 (0)