状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式
以红绿灯为例说明。红绿灯有三种状态,红黄绿,每种状态灯的显示颜色是不同的,处理方式是不同的
public interface IState {
void handle();
}
public class RedState implements IState {
@Override
public void handle() {
System.out.println("红灯状态...");
}
}
public class Yellow implements IState {
@Override
public void handle() {
System.out.println("黄灯状态...");
}
}
public class GreenState implements IState {
@Override
public void handle() {
System.out.println("绿灯状态...");
}
}
public class TrafficLightContext {
private IState state;
public void setState(IState state) {
this.state = state;
}
public void handle() {
this.state.handle();
}
}
public class State01Test {
public static void main(String[] args) {
TrafficLightContext trafficLightContext = new TrafficLightContext();
trafficLightContext.setState(new RedState());
trafficLightContext.handle();
trafficLightContext.setState(new GreenState());
trafficLightContext.handle();
/**
* 红灯状态...
* 绿灯状态...
*/
}
}
原文:https://www.cnblogs.com/lijingyulee/p/11991552.html