状态设计模式

状态设计模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。将动作委托到代表当前状态的类。行为会随着内部状态而改变。状态模式的类图和策略模式一模一样。但是两者的用法不同。使用状态设计模式会导致设计的类的数量会大大增加。

一个不太恰当的代码实现:
public class StateMain {
	//状态接口
	State beginState;
	State endState;
	
	
	public void begin(){
		beginState.begin();
	}
	public void end(){
		endState.end();
	}
	
	public State getBeginState() {
		return beginState;
	}
	public void setBeginState(State beginState) {
		this.beginState = beginState;
	}
	public State getEndState() {
		return endState;
	}
	public void setEndState(State endState) {
		this.endState = endState;
	}
	
	
}

public class BeginState implements State{
	private StateMain stateMain;
	public  BeginState(StateMain stateMain) {
		this.stateMain = stateMain;
	}
	@Override
	public void begin() {
		
		System.out.println("开始状态");
		//将状态委托到另一个类中执行
		stateMain.setEndState(stateMain.getEndState());
		
	}

	@Override
	public void end() {
		System.out.println("开始状态");
	}

}

猜你喜欢

转载自chen-sai-201607223902.iteye.com/blog/2362088
今日推荐