Skip to content

Commit 8659d49

Browse files
committed
add Component.md
1 parent fc978ce commit 8659d49

3 files changed

Lines changed: 41 additions & 47 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## 组件模式
2+
3+
### 定义
4+
5+
允许一个单一的实体跨越多个不同域而不会导致耦合。
6+
7+
### 场景
8+
9+
- 你有一个涉及多个域的类,但是你希望这些域保持相互解耦。
10+
- 一个类越来越庞大,越来越难以开发。
11+
- 你希望定义许多共享不同能力的对象,但采用继承的办法却无法令你精确地重用代码。
12+
13+
### 案例
14+
15+
[RPG游戏](./Assets/DecouplingPatterns/Component)
16+
17+
### 实现方式
18+
19+
* 单一实体跨越了多个领域。
20+
21+
* 为了保持领域之间相互分离,将每部分代码放入**各自的组件类**中。
22+
23+
* 实体被简化为*组件的容器*
24+
25+
### 优缺点
26+
27+
**优点**
28+
29+
* 各个功能模块进行解耦
30+
31+
**缺点**
32+
33+
* 增加了组件之间的通信开销
34+
35+
### 与其他设计模式的关系
36+
37+
- 这种模式与GoF的策略模式类似。 两种模式都是将对象的行为取出,划入单独的重述对象。 与对象模式不同的是,分离的策略模式通常是无状态的——它封装了算法,而没有数据。 它定义了对象*如何*行动,但没有定义对象**什么。
38+
39+
组件更加重要。它们经常保存了对象的状态,这有助于确定其真正的身份。 但是,这条界限很模糊。有一些组件也许根本没有任何状态。 在这种情况下,你可以在不同的容器对象中使用相同的组件*实例*。这样看来,它的行为确实更像一种策略。

GameProgrammingPatterns/README_GameProgrammingPatterns.md

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,8 @@
11
# Game Programming Patterns 游戏编程模式
22
Unity实现《游戏编程模式》
33

4-
# 行为模式
5-
-
6-
7-
-
8-
9-
-
10-
114
# 解耦模式
12-
## 组件模式
13-
14-
### 定义
15-
16-
允许一个单一的实体跨越多个不同域而不会导致耦合。
17-
18-
### 场景
19-
20-
- 你有一个涉及多个域的类,但是你希望这些域保持相互解耦。
21-
- 一个类越来越庞大,越来越难以开发。
22-
- 你希望定义许多共享不同能力的对象,但采用继承的办法却无法令你精确地重用代码。
23-
24-
### 案例
25-
26-
[RPG游戏](./Assets/DecouplingPatterns/Component)
27-
28-
### 实现方式
29-
30-
* 单一实体跨越了多个领域。
31-
32-
* 为了保持领域之间相互分离,将每部分代码放入**各自的组件类**中。
33-
34-
* 实体被简化为*组件的容器*
35-
36-
### 优缺点
37-
38-
**优点**
39-
40-
* 各个功能模块进行解耦
41-
42-
**缺点**
43-
44-
* 增加了组件之间的通信开销
45-
46-
### 与其他设计模式的关系
47-
48-
- 这种模式与GoF的策略模式类似。 两种模式都是将对象的行为取出,划入单独的重述对象。 与对象模式不同的是,分离的策略模式通常是无状态的——它封装了算法,而没有数据。 它定义了对象*如何*行动,但没有定义对象**什么。
49-
50-
组件更加重要。它们经常保存了对象的状态,这有助于确定其真正的身份。 但是,这条界限很模糊。有一些组件也许根本没有任何状态。 在这种情况下,你可以在不同的容器对象中使用相同的组件*实例*。这样看来,它的行为确实更像一种策略。
5+
-
516

527
## 事件队列
538

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
- [子类沙箱](./GameProgrammingPatterns/SubclassSandbox.md)
2121
- [类型对象](./GameProgrammingPatterns/TypeObject.md)
2222
- 解耦模式
23-
- [组件模式](./GameProgrammingPatterns/)
23+
- [组件模式](./GameProgrammingPatterns/Component.md)
2424
- [事件队列](./GameProgrammingPatterns/)
2525
- [服务定位器](./GameProgrammingPatterns/)
2626
- 优化模式

0 commit comments

Comments
 (0)