轻松掌握Java状态模式
时间:2021-04-03 07:47:56|栏目:JAVA代码|点击: 次
定义:在状态模式(State Pattern)中,类的行为是基于它的状态改变的。
特点:
1、封装了转换规则。
2、枚举可能的状态,在枚举状态之前需要确定状态种类。
3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。
4、允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。
5、可以让多个环境对象共享一个状态对象,从而减少系统中对象的个数。
企业及开发和常用框架中的应用:
实例:
public class Demo {
public static void main(String[] args) {
Context context = new Context();
State move = new Move();
move.show(context);
State stop = new Stop();
stop.show(context);
}
}
class Context{
private State state;
public void setState(State state){
System.out.println("给物体加持状态");
this.state = state;
}
}
interface State{
void show(Context context);
}
class Move implements State{
public void show(Context context) {
context.setState(this);
System.out.println("物体处于运动状态");
}
}
class Stop implements State{
public void show(Context context) {
context.setState(this);
System.out.println("物体处于静止状态");
}
}
状态模式是用于对象状态比较多的情况,比如完成一件事的时候有未完成、已完成、进行中、搁置等状态,这时候就可以考虑是用状态模式。
上一篇:Spring下Filter过滤器配置全局异常处理的详细步骤
栏 目:JAVA代码
本文标题:轻松掌握Java状态模式
本文地址:http://www.codeinn.net/misctech/93802.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




