Skip to content

Commit e9e946d

Browse files
committed
修正一些翻译错误
1 parent 89a1396 commit e9e946d

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

book/command.markdown

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
1212
我想你也会觉得这个句子晦涩难懂。
1313
第一,它的比喻难以理解。
14-
在软件之外的狂野世界,词语可以指代任何事物,“客户”是一个**——那些和你做生意的人。
14+
在词语可以指代任何事物的狂野软件世界之外,“客户”是一个**——那些和你做生意的人。
1515
据我查证,人类不能被“参数化”。
1616

1717
然后,句子余下的部分介绍了可能会使用这个模式的场景。
@@ -122,15 +122,15 @@
122122
## 角色说明
123123

124124
我们刚才定义的类可以在之前的例子上正常工作,但有很大的局限。
125-
问题在于假设顶层的`jump()`, `fireGun()`之类的函数可以找到玩家的角色,然后像操纵木偶一样操纵它
125+
问题在于假设了顶层的`jump()`, `fireGun()`之类的函数可以找到玩家角色,然后像木偶一样操纵它
126126

127127
这些假定的耦合限制了这些命令的用处。`JumpCommand`*只能* 让玩家的角色跳跃。让我们放松这个限制。
128128
不让函数去找它们控制的角色,我们将函数控制的角色对象*传进去*
129129

130130
^code actor-command
131131

132132
这里的`GameActor`是代表游戏世界中角色的“游戏对象”类。
133-
我们将其传给`execute()`这样可以在命令的子类中添加函数,来与我们选择的角色关联,就像这样:
133+
我们将其传给`execute()`这样命令类的子类就可以调用所选游戏对象上的方法,就像这样:
134134

135135
^code jump-actor
136136

@@ -158,9 +158,9 @@
158158

159159
在选择命令的AI和展现命令的游戏角色间解耦给了我们很大的灵活度。
160160
我们可以对不同的角色使用不同的AI,或者为了不同的行为而混合AI。
161-
想要一个更加有攻击性的同伴?插入一个更加有攻击性的AI为其生成命令。
161+
想要一个更加有攻击性的对手?插入一个更加有攻击性的AI为其生成命令。
162162
事实上,我们甚至可以为*玩家角色*加上AI,
163-
在原型阶段游戏需要自动演示时,这是很有用的。
163+
在展示阶段,游戏需要自动演示时,这是很有用的。
164164

165165
<span name="queue"></span>把控制角色的命令变为第一公民对象,去除直接方法调用中严厉的束缚。
166166
将其视为命令队列,或者是命令流:
@@ -198,7 +198,7 @@
198198
最后的这个例子是这种模式最广为人知的使用情况。
199199
如果一个命令对象可以**一件事,那么它亦可以*撤销*这件事。
200200
在一些策略游戏中使用撤销,这样你就可以回滚那些你不喜欢的操作。
201-
在人们*创造*游戏时,这是*必不可少的*工具。
201+
它是*创造*游戏时*必不可少的*工具。
202202
一个不能撤销误操作导致的错误的编辑器,肯定会让游戏设计师恨你。
203203

204204
<aside name="hate">
@@ -253,7 +253,7 @@
253253

254254
这看上去是<a href="http://en.wikipedia.org/wiki/Memento_pattern"
255255
class="gof-pattern">备忘录</a>模式使用的地方,它从来没有有效地工作过。
256-
由于命令趋向于修改对象状态的一小部分,对数据其他部分的快照就是浪费内存。手动存储改动的部分消耗更小
256+
由于命令趋向于修改对象状态的一小部分,对数据其他部分的快照就是浪费内存。手动内存管理的消耗更小
257257

258258
*<a href="http://en.wikipedia.org/wiki/Persistent_data_structure">持久化数据结构</a>*是另一个选项。
259259
使用它,每次修改对象都返回一个新对象,保持原来的对象不变。巧妙的实现下,这些新对象与之前的对象共享数据,所以比克隆整个对象开销更小。

0 commit comments

Comments
 (0)