第十八篇 设计模式--状态模式

定义:允许一个对象在其内部状态改变时改变它的行为,让对象看起来似乎修改了它的类。

定义:

package state_model;

/**
 * @author naivor
 *		状态模式-场景类
 */
public class StateModel {
	public static void main(String[] args) {
		Context context=new Context(new ConcreteStateA());
		context.request();
		context.request();   //每执行一次请求,就会改变状态
	}
}

/**
 * 
 * @author naivor
 *		状态模式-状态抽象类
 */
abstract class State{
	public abstract void handle(Context context);
}
/**
 * 
 * @author naivor
 *		状态模式-状态A类
 */
class ConcreteStateA extends State{
	@Override
	public void handle(Context context) {
		context.setState(new ConcreteStateB());
	}
}
/**
 * 
 * @author naivor
 *		状态模式-状态B类
 */
class ConcreteStateB extends State{
	@Override
	public void handle(Context context) {
		context.setState(new ConcreteStateA());
	}
}
/**
 * 
 * @author naivor
 *		状态模式-状态处理类
 */
class Context{
	private State state;
	public Context(State state) {
		this.state=state;
	}
	
	public State getState() {
		return state;
	}

	public void setState(State state) {
		this.state = state;
	}

	public void request(){
		state.handle(this);
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章