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+ * 应当用在你有许多行为需要定义,例如:一系列的法术技能
10+
11+ ### 案例
12+
13+ [ 法术技能] ( ./Assets/BehavioralPatterns/Bytecode )
14+
15+ ### 实现方式
16+
17+ * ** 指令集** 定义了可执行的底层操作。
18+
19+ * 一系列的指令被编码为** 字节序列** 。
20+
21+ * ** 虚拟机** 使用 ** 中间值栈** 依次执行这些指令。
22+
23+ * 通过组合指令,可以定义复杂的高层行为。
24+
25+ ### 优缺点
26+
27+ ** 优点**
28+
29+ * 可扩展性比较好,灵活。
30+ * 增加了新的解释表达式的方式。
31+ * 易于实现简单文法。
32+
33+ ** 缺点**
34+
35+ - 过于底层,繁琐易错。
36+ - 编译慢或者其他工具因素导致迭代缓慢。
37+ - 安全性依赖编程者。如果想保证行为不会破坏游戏,你需要将其与代码的其他部分隔开。
38+
39+ ### 与其他设计模式的关系
40+
41+ - 这一章节的近亲是GoF的[ 解释器模式] ( http://en.wikipedia.org/wiki/Interpreter_pattern ) 。两种方式都能让你用** 数据组合行为** 。
42+
43+ 事实上,最终你两种模式* 都* 会使用。你用来构造字节码的工具会有内部的对象树。这也是** 解释器模式** 所能做的。
44+
45+ 为了编译到字节码,你需要递归回溯整棵树,就像用** 解释器模式** 去解释它一样。 * 唯一的* 不同在于,** 不是立即执行一段行为** ,而是生成整个字节码再执行。
Original file line number Diff line number Diff line change 11# Game Programming Patterns 游戏编程模式
22Unity实现《游戏编程模式》
33
4- # 序列模式
54# 行为模式
6- ## 字节码
7-
8- ### 定义
9-
10- 将行为编码为虚拟机器上的指令,赋予其数据的灵活性
11-
12- ### 场景
13-
14- * 应当用在你有许多行为需要定义,例如:一系列的法术技能
15-
16- ### 案例
17-
18- [ 法术技能] ( ./Assets/BehavioralPatterns/Bytecode )
19-
20- ### 实现方式
21-
22- * ** 指令集** 定义了可执行的底层操作。
23-
24- * 一系列的指令被编码为** 字节序列** 。
25-
26- * ** 虚拟机** 使用 ** 中间值栈** 依次执行这些指令。
27-
28- * 通过组合指令,可以定义复杂的高层行为。
29-
30- ### 优缺点
31-
32- ** 优点**
33-
34- * 可扩展性比较好,灵活。
35- * 增加了新的解释表达式的方式。
36- * 易于实现简单文法。
37-
38- ** 缺点**
39-
40- - 过于底层,繁琐易错。
41- - 编译慢或者其他工具因素导致迭代缓慢。
42- - 安全性依赖编程者。如果想保证行为不会破坏游戏,你需要将其与代码的其他部分隔开。
43-
44- ### 与其他设计模式的关系
45-
46- - 这一章节的近亲是GoF的[ 解释器模式] ( http://en.wikipedia.org/wiki/Interpreter_pattern ) 。两种方式都能让你用** 数据组合行为** 。
47-
48- 事实上,最终你两种模式* 都* 会使用。你用来构造字节码的工具会有内部的对象树。这也是** 解释器模式** 所能做的。
49-
50- 为了编译到字节码,你需要递归回溯整棵树,就像用** 解释器模式** 去解释它一样。 * 唯一的* 不同在于,** 不是立即执行一段行为** ,而是生成整个字节码再执行。
5+ -
516
527## 子类沙箱
538
Original file line number Diff line number Diff line change 1616 - 游戏循环
1717 - [ 更新方法] ( ./GameProgrammingPatterns/UpdateMethod.md )
1818- 行为模式
19- - [ 字节码] ( ./GameProgrammingPatterns/ )
19+ - [ 字节码] ( ./GameProgrammingPatterns/Bytecode.md )
2020 - [ 子类沙箱] ( ./GameProgrammingPatterns/ )
2121 - [ 类型对象] ( ./GameProgrammingPatterns/ )
2222- 解耦模式
You can’t perform that action at this time.
0 commit comments