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 55隆有走动,攻击,防御,跌倒,跳跃等等多种状态,而这些状态之间既有联系又互相约束。<br />
66比如跳跃的时候是不能攻击和防御的。跌倒的时候既不能攻击又不能防御,而走动的时候既可以攻击也可以跳跃。<br />
77要完成这样一系列逻辑, 常理下if else是少不了的. 而且数量无法估计, 特别是增加一种新状态的时候, 可能要从代码的第10行一直改到900行. <br />
8- '''javascript
8+
9+
10+ ``` javascript
911if ( state === ' jump' ){
1012 if ( currState === ' attack' || currState === ' defense' ){
1113 return false ;
@@ -15,8 +17,11 @@ if ( state === 'jump' ){
1517 return true ;
1618 }
1719}
20+
1821```
22+
1923为了消灭这些if else, 并且方便修改和维护, 我们引入一个状态类.
24+
2025``` javascript
2126var StateManager = function (){
2227 var currState = ' wait' ;
@@ -46,4 +51,5 @@ var StateManager = function(){
4651}
4752var stateManager = StateManager ();
4853stateManager .changeState ( ' defense' );
49- ```
54+ ```
55+ Edit By [ MaHua] ( http://mahua.jser.me )
You can’t perform that action at this time.
0 commit comments