首页 > 代码库 > Java 实现状态(State)模式

Java 实现状态(State)模式

/**
 * @author stone
 */
public class WindowState {
	private String stateValue;
	
	public WindowState(String stateValue) {
		this.stateValue = http://www.mamicode.com/stateValue;>

/**
 * 状态的使用
 * @author stone
 *
 */
public class WindowContext {
	private WindowState state;
	
	public WindowContext(WindowState state) {
		this.state  = state;
	}
	
	public WindowState getState() {
		return state;
	}
	
	public void setState(WindowState state) {
		this.state = state;
	}
	
	public void switchState() {
		this.state.handle();
	}
}

/*
 * 状态(State)模式 行为型模式
 * 既改变对象的状态,又改变对象的行为
 * 根据状态,改变行为
 */
public class Test {
	public static void main(String[] args) {
		/*
		 * 本例的 状态值只有两个,由状态类自身控制
		 * 也可以把状态值的控制,交由客户端来设置
		 */
		WindowContext context = new WindowContext(new WindowState("窗口"));
		context.switchState();
		context.switchState();
		context.switchState();
		context.switchState();

	}
}

打印

切换为窗口状态
切换为全屏状态
切换为窗口状态
切换为全屏状态




Java 实现状态(State)模式