1.用意
状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。
2.类图

3.代码
/*
* 环境角色
*/
public class Context {
private State state;
public void sampleOperation() {
state.sampleOperation();
}
public void setState(State state) {
this.state = state;
}
}
/*
* 抽象状态
*/
public interface State {
void sampleOperation();
}
/*
* 具体状态类A
*/
public class ConcreteStateA implements State {
public void sampleOperation() {
S.s("ConcreteState::A");
}
}
/*
* 具体状态类B
*/
public class ConcreteStateB implements State {
public void sampleOperation() {
S.s("ConcreteState::B");
}
}
/*
* 测试类
*/
public class Test {
public static void main(String[] args) {
Context c = new Context();
c.setState(new ConcreteStateA());
c.sampleOperation();
c.setState(new ConcreteStateB());
c.sampleOperation();
}
}
z
716



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



