状态模式
UML
解释说明
- 状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
- 状态模式主要解决的是当一个控制对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中。
代码实现
package learn12;
public abstract class State {
public abstract void Handle(Context context);
}
package learn12;
public class Context {
private State state;
public Context(State state) {
this.state = state;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public void request() {
state.Handle(this);
}
}
package learn12;
public class ConcreteStateA extends State {
@Override
public void Handle(Context context) {
System.out.println("ConcreteStateA 处理请求!");
context.setState(new ConcreteStateB());
}
}
package learn12;
public class ConcreteStateB extends State {
@Override
public void Handle(Context context) {
System.out.println("ConcreteStateB 处理请求!");
context.setState(new ConcreteStateC());
}
}
package learn12;
public class ConcreteStateC extends State {
@Override
public void Handle(Context context) {
System.out.println("ConcreteStateC 处理请求!");
}
}
参考资料