在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。
在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。
例子:同样一个人在不同的状态下表现是不一样的

class StatePattern {
public static void main(String[] args) {
Context zhangSan = new Context();
zhangSan.changeState(new Happy());
zhangSan.doSomething();
zhangSan.changeState(new Sad());
zhangSan.doSomething();
}
}
abstract class State {
abstract void doWork();
}
class Happy extends State {
@Override
void doWork() {
System.out.println("积极主动!");
}
}
class Angry extends State {
@Override
void doWork() {
System.out.println("无精打采!");
}
}
class Sad extends State {
@Override
void doWork() {
System.out.println("啥也不干!");
}
}
class Context {
private State state;
public void changeState(State state) {
this.state = state;
}
public void doSomething() {
state.doWork();
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END


















![[02/27][官改] Simplicity@MIX2 ROM更新-一一网](https://www.proyy.com/wp-content/uploads/2020/02/3168457341.jpg)


![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)