public class Context {
private TestState testState;
public void setState(TestState state){
this.testState = state;
}
public void changeColor() {
testState.handle();
}
}
public interface TestState {
void handle();
}
public class TestState1 implements TestState {
private Context context;
public TestState1(Context context) {
this.context = context;
}
@Override
public void handle() {
System.out.println("赤");
context.setState(new TestState2(context));
}
}
public class TestState2 implements TestState {
private Context context;
public TestState2(Context context) {
this.context = context;
}
@Override
public void handle() {
System.out.println("橙");
context.setState(new TestState3(context));
}
}
public class TestState3 implements TestState {
private Context context;
public TestState3(Context context) {
this.context = context;
}
@Override
public void handle() {
System.out.println("黄");
context.setState(new TestState1(context));
}
}
public class Client {
public static void main(String[] args) {
Context context = new Context();
context.setState(new TestState1(context));
for (int i = 0; i < 100; i++) {
context.changeColor();
}
}
}
神奇的输出:
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
橙
黄
赤
相关推荐
状态模式-State Pattern状态模式-State Pattern【学习难度:,使用频率:】状态模式-State Pattern处理对象的多种状态及其相互
55-Java设计模式之策略模式与状态模式1
java设计模式之-状态模式-实现
java,设计模式中的一种,状态设计模式。
State模式主要解决的是在开发中时常遇到的根据不同的状态需要进行不同的处理操作的问题,而这样的问题,大部分人是采用switch-case语句进行处理的,这样会造成一个问题:分支过多,而且如果加入一个新的状态就需要对...
java设计模式之状态模式入门
博客地址:https://blog.csdn.net/xiaoluo5238/article/details/104592927 完整的代码,就是包名需要注意一下
主要介绍了JAVA 状态模式的的相关资料,文中讲解的非常细致,帮助大家更好的学习理解JAVA 设计模式,感兴趣的朋友可以了解下
java设计模式之状态模式,通过实际生活中的例子说明状态模式的原理。
主要为大家详细介绍了23种设计模式之java状态模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
设计模式之状态模式的Java版本实现和UML类图设计
Java 23种设计模式24状态模式.pdf
设计模式 java 状态模式
主要帮助大家轻松掌握Java状态模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了Java设计模式之状态模式(State模式)介绍,本文讲解了何时使用状态模式、如何使用状态模式等内容,需要的朋友可以参考下
26.3.4 状态模式的注意事项 26.4 最佳实践 第27章 解释器模式 27.1 四则运算你会吗 27.2 解释器模式的定义 27.3 解释器模式的应用 27.3.1 解释器模式的优点 27.3.2 解释器模式的缺点 27.3.3 解释器模式使用的场景 ...
java常用设计模式-状态模式
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
状态模式.rar状态模式.rar之java设计模式
计算机后端-Java-图解java设计模式137 状态模式(2).avi