其他分享
首页 > 其他分享> > 状态模式

状态模式

作者:互联网

概念

人有开心和难过两种状态,当我开心的时候我就去上班,当我难过的时候我就不想上班,这种根据状态决定行为的方式,称为状态模式

实现方式

/**
 * 状态
 */
public class Demo {
    public static void main(String[] args) {
        Person person = new Person();
        // 改变状态为开心
        person.changeState(new Happy());
        person.behavior();
        // 改变状态为难过
        person.changeState(new Sad());
        person.behavior();
    }
}

// 状态,所有状态都要实现该接口
interface State {
    void doWork();
}

// 开心的状态
class Happy implements State {
    @Override
    public void doWork() {
        System.out.println("我今天开心,我去上班");
    }
}

// 难过的状态
class Sad implements State {
    @Override
    public void doWork() {
        System.out.println("我今天难过,不想上班,请假");
    }
}

// 人。 人的状态可能是开心,也可能是难过
class Person {
    private State state;

    public void changeState(State state) {
        this.state = state;
    }

    // 行为。根据状态决定作出什么行为
    public void behavior() {
        state.doWork();
    }
}

我今天开心,我去上班
我今天难过,不想上班,请假

状态和策略模式区别

标签:状态,开心,void,模式,上班,State,public
来源: https://www.cnblogs.com/luchaoguan/p/15579107.html