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
本文介绍状态模式的概念及其在软件设计中的应用。通过一个简单的例子展示了如何使用状态模式来改变对象的行为,使得对象能够在不同状态下表现出不同的行为特性。文章还提供了状态模式的类图和示例代码。
473

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



