js里的状态模式

状态模式

状态模式的定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

简单来说就是在一个类里封装入多个表示这个类的不同状态的对象,在当前的状态改变后,调用状态代表的对象的方法。

class Homo {
    constructor() {
        this.state = "";
        this.actives = {
            run() {
                console.log("跑");
            },
            walk() {
                console.log("走");
            },
            jump() {
                console.log("跳");
            },
        };
    }
    setState(active) {
        this.state = active;
    }
    do() {
        this.actives[this.state]();
    }
}

const man = new Homo();
man.setState("jump");
man.do();
man.setState("run");
man.do();

像这样就做到了最简单的状态模式。

posted @ 2021-07-22 21:09  影依贤者  阅读(111)  评论(0)    收藏  举报