状态模式是什么?
状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
状态模式的适用范围
状态模式的典型例子就是状态机,随着状态不同,选择的行为也不一样,具体的行为根据运行时的状态决定。采用状态模式后,可以省去一大堆条件判断语句。在状态模式中,把每种条件分支放入一个类中,处理更为灵活。
状态模式的示例
下面用电视遥控的开关状态来说明状态模式:
public interface State {
public void doAction();
}
public class TVStartState implements State {
@Override
public void doAction() {
System.out.println("TV is turned ON");
}
}public class TVStopState implements State {
@Override
public void doAction() {
System.out.println("TV is turned OFF");
}
}ublic class TVContext implements State {
private State tvState;
public void setState(State state) {
this.tvState=state;
}
public State getState() {
return this.tvState;
}
@Override
public void doAction() {
this.tvState.doAction();
}
}//测试public class TVRemote {
public static void main(String[] args) {
TVContext context = new TVContext();
State tvStartState = new TVStartState();
State tvStopState = new TVStopState();
context.setState(tvStartState);
context.doAction();
context.setState(tvStopState);
context.doAction();
}
}
本文介绍了状态模式的概念及其在软件设计中的应用。通过一个简单的电视遥控器示例,展示了如何使用状态模式来避免复杂的条件判断语句,并使代码更加灵活和易于维护。
1476

被折叠的 条评论
为什么被折叠?



