设计模式(19) 状态模式

state

如果模型的很多方法都要根据状态实现,那就可以把状态抽象出来。

Operation不会扩展的情况下才能用State模式。

设计模式(19) 状态模式_第1张图片

interface State {
    void smile();
    void cry();
}

class Person {
    State state;

    void smile() {
        state.smile();
    }
    void cry() {
        state.cry();
    }
}
class HappyState implements State {
    public void smile() {
        System.out.println("高兴地笑了");
    }
    public void cry() {
        System.out.println("高兴的哭了");
    }
}

class SadState implements State {
    public void smile() {
        System.out.println("悲伤地笑了");
    }
    public void cry() {
        System.out.println("悲伤地哭了");
    }
}

你可能感兴趣的:(Java)