js状态模式是什么

美女程序员鼓励师

说明

1、关键是区分事物内部的状态,事物内部状态往往会带来事物的行为改变。

即允许对象在内部状态发生改变时改变它的行为。

2、状态模式就是封装状态,允许一个对象在其内部状态改变时改变它的行为,我们之前一般都是封装行为。

实例

js;toolbar:false">// 红灯

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() // turn to red light

setInterval(() => {

    state.currState.light() // 每隔3秒依次打印红灯、绿灯、黄灯

}, 3000)

以上就是js状态模式的介绍,希望对大家有所帮助。更多js学习指路:js教程

推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

以上是 js状态模式是什么 的全部内容, 来源链接: utcz.com/z/545161.html

回到顶部