File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed
JavaScript-Design-Patterns/State-Pattern Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change 5
5
隆有走动,攻击,防御,跌倒,跳跃等等多种状态,而这些状态之间既有联系又互相约束。<br />
6
6
比如跳跃的时候是不能攻击和防御的。跌倒的时候既不能攻击又不能防御,而走动的时候既可以攻击也可以跳跃。<br />
7
7
要完成这样一系列逻辑, 常理下if else是少不了的. 而且数量无法估计, 特别是增加一种新状态的时候, 可能要从代码的第10行一直改到900行. <br />
8
- '''javascript
8
+
9
+
10
+ ``` javascript
9
11
if ( state === ' jump' ){
10
12
if ( currState === ' attack' || currState === ' defense' ){
11
13
return false ;
@@ -15,8 +17,11 @@ if ( state === 'jump' ){
15
17
return true ;
16
18
}
17
19
}
20
+
18
21
```
22
+
19
23
为了消灭这些if else, 并且方便修改和维护, 我们引入一个状态类.
24
+
20
25
``` javascript
21
26
var StateManager = function (){
22
27
var currState = ' wait' ;
@@ -46,4 +51,5 @@ var StateManager = function(){
46
51
}
47
52
var stateManager = StateManager ();
48
53
stateManager .changeState ( ' defense' );
49
- ```
54
+ ```
55
+ Edit By [ MaHua] ( http://mahua.jser.me )
You can’t perform that action at this time.
0 commit comments