状态模式,又称状态对象模式,状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。
示例:
1、结构
状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式的示意性类图如下图所示:
2、java代码
State接口:
package state.state;
public interface State {
public void sampleOperation();
}
public void sampleOperation();
}
ConcreteState类:
package state.state;
public class ConcreteState implements State{
public void sampleOperation() {
System.out.println("ConcreteState。。。。。。");
}
}
public void sampleOperation() {
System.out.println("ConcreteState。。。。。。");
}
}
Context类:
package state.context;
import state.state.State;
public class Context {
private State state;
public void sampleOperation(){
state.sampleOperation();
}
public void setState(State state) {
this.state = state;
}
}
public class Context {
private State state;
public void sampleOperation(){
state.sampleOperation();
}
public void setState(State state) {
this.state = state;
}
}
Client类:
package state;
import state.context.Context;
import state.state.ConcreteState;
import state.state.State;
public class Client {
private static Context context = new Context();
private static State state;
public static void main(String args[]){
state = new ConcreteState();
context.setState(state);
context.sampleOperation();
}
}
import state.state.ConcreteState;
import state.state.State;
public class Client {
private static Context context = new Context();
private static State state;
public static void main(String args[]){
state = new ConcreteState();
context.setState(state);
context.sampleOperation();
}
}