
说明
1、关键是区分事物内部的状态,事物内部状态往往会带来事物的行为改变。
即允许对象在内部状态发生改变时改变它的行为。
2、状态模式就是封装状态,允许一个对象在其内部状态改变时改变它的行为,我们之前一般都是封装行为。
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 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 42 43 44 45 46 | class RedLight {
constructor (state) {
this .state = state;
}
light () {
console.log( 'turn to red light' );
this .state.setState( this .state.greenLight)
}
}
class greenLight {
constructor (state) {
this .state = state;
}
light () {
console.log( 'turn to green light' );
this .state.setState( this .state.yellowLight)
}
}
class yellowLight {
constructor (state) {
this .state = state;
}
light () {
console.log( 'turn to yellow light' );
this .state.setState( this .state.redLight)
}
}
class State {
constructor () {
this .redLight = new RedLight( this )
this .greenLight = new greenLight( this )
this .yellowLight = new yellowLight( this )
this .setState( this .redLight)
}
setState (state) {
this .currState = state;
}
}
const state = new State();
state.currState.light()
setInterval(() => {
state.currState.light()
}, 3000)
|
以上就是js状态模式的介绍,希望对大家有所帮助。更多js学习指路:js教程
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。