十三、状态模式

   状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中。

State

public abstract class State {

	public abstract void handle(Context context);

}

StateA

public class StateA extends State {

	public void handle(Context context){
		context.state = new StateB();
	}

}

StateB

public class StateB extends State {

	public void handle(Context context){

		context.state = new StateA();

	}

}

 Context

public class Context {

	public State state;

	public Context(State state){
		this.setState(state);
	}

	public void setState(State state){
		this.state = state;
		System.out.println("当前状态:" + state);
	}

	public State getState(){
		return this.state;
	}

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

}

Client

class Client 
{
	public static void main(String[] args) 
	{
		Context c = new Context(new StateA());

		c.quest();
		c.quest();
		c.quest();
		c.quest();

	}
}

猜你喜欢

转载自bolan392.iteye.com/blog/1265654