状态(State)模式:
允许一个对象在其内部状态发生改变时改变其行为能力(需要有状态类来持有状态)。
比如QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,
状态模式就两点:
1、可以通过改变状态来获得不同的行为。
2、你的好友能同时看到你的变化。
看图:
State类是个状态类,Context类可以实现切换,我们来看看代码:
/**
* 状态类的核心类
*/
public class State {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public void method1(){
System.out.println("execute the first opt!");
}
public void method2(){
System.out.println("execute the secon