JAVA设计模式——状态模式

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

状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。

好处:将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。

当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了。
这里写图片描述

一个接口定义状态,子类实现接口形成不同的状态,一个实体类接收接口对象,可以取得和设置当前状态,可以设置下一个状态。

/**
* 状态接口
*/
public interface State {
void getState();
}

/**
* 第一种状态
*/
public class StateA implements State{
@Override
public void getState() {
System.out.println(“A状态”);
}
}

/**
* 第二种状态
*/
public class StateB implements State{
@Override
public void getState() {
System.out.println(“B状态”);
}
}

/**
* 定义当前状态
*/
public class Context {
private State state;
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public void stateMessage(){ //取得状态信息
this.state.getState();
}
}

public class Main {
public static void main(String[] args) {
Context context = new Context();
context.setState(new StateA());
context.stateMessage();
context.setState(new StateB());
context.stateMessage();
}
}

猜你喜欢

转载自blog.csdn.net/qq_36997245/article/details/81712307