状态机 java_java版的状态机实现
状态机适用场景:
C的操作,需要等到A、B的两个操作(A、B顺序操作),那就需要在 A、B之间创建一个状态机(state machine),C的操作需要状态机达到某一个状态才能进行
1. Overview
java版的状态机的原理其实就是java中的枚举类Enum,所以在进行状态机设计之前,先学习一下(回顾一个java Enum)
2. Java Enums
一个简单的例子:员工请假系统,员工到HR那离(submitted)-> 部门领导(Escalated) -> 部门经理(Approved)
public enumLeaveRequestState {
Submitted,
Escalated,
Approved
}
我们可以这样引用:
LeaveRequestState state = LeaveRequestState.Submitted;
java的枚举也可以包含方法,我们可以在枚举类中写一个抽象方法(abstract),这样枚举类中的每个成员都会继承该方法,这个就是java版状态机的核心所在
public enumLeaveRequestState {
Submitted {
@OverridepublicString responsiblePerson() {return "Employee";
}
},
Escalated {
@OverridepublicString responsiblePerson() {return "Team Leader";
}<
状态机 java_java版的状态机实现相关推荐
- java多状态机_一个java状态机样例的代码
在UML当中有状态机视图,这个状态机可以用于自动售货机,自动售票机等等场景,下面是用java代码模拟的一个状态机: 1.状态机接口 package stateMachine; /** * 状态机接口 ...
- 管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程
前言 在平常的后端项目开发中,状态机模式的使用其实没有大家想象中那么常见,笔者之前由于不在电商领域工作,很少在业务代码中用状态机来管理各种状态,一般都是手动get/set状态值.去年笔者进入了电商领域 ...
- QP状态机框架与常见状态机方法
原文链接:嵌入式状态机编程-QP状态机框架与常见状态机方法 状态机基本术语 现态:是指当前所处的状态. 条件:又称为"事件",当一个条件被满足,将会触发一个动作,或者执行一次状态的 ...
- android 状态机的作用,Android 状态机、状态模式 基础框架实现
一.StateMachine 要解决的问题 从设计模式的角度来讲,状态模式和策略模式类图是一样的,所以工作原理也类似.但相比较于策略模式,状态模式需要管理好状态树,以及维护状态对象的生命周期. 所以, ...
- 飞狐的日线 java_JAVA 版 ATX-Client
背景 由于我们这边正在进行 app 自动化工具选型,目前暂定选用 macaca,但 macaca 存在没有无线测试连接方案,后来在论坛上看到 @codeskyblue 开源的 atx-agent 方案 ...
- atx860和java_JAVA 版 ATX-Client
背景 由于我们这边正在进行 app 自动化工具选型,目前暂定选用 macaca,但 macaca 存在没有无线测试连接方案,后来在论坛上看到 @codeskyblue 开源的 atx-agent 方案 ...
- 飞机大战java_java版飞机大战实战项目详细步骤
本文为大家分享了java版飞机大战实战项目,供大家参考,具体内容如下 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是 ...
- nc要用多少版本的java_java版简易 nc
实现一个Java版的简易nc,用于方便windows上spark streaming的socketTextStream 的测试 界面如下 运行方式 有两种: 不添加端口号参数,直接运行的话,默认监听9 ...
- 坦克大战java_java版坦克大战游戏源码
[java]代码库package tankwar; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; imp ...
最新文章
- 离人类更近一步!DeepMind最新Nature论文:AI会“回忆”,掌握调取记忆新姿势
- The Constructor with No Arguments
- 图的m着色问题pascal程序
- python中坐标怎么表示_如何在Python中以像素表示(有限)平面上的坐标
- Linux日志查找技巧
- Netty的队列有何不一样
- 计蒜客蓝桥杯模拟赛5 引爆炸弹【并查集】
- 4.11 一维到三维推广
- SpringCloud工作笔记060---SpringBoot中使用WebSocket实现即时通讯_实现呼叫中心业务封装
- pb dw graph增加series_如何快速增加tiktok视频的播放量
- H5 data-* 属性,设置获取方法总结
- linux 使用秘钥认证,linux 密钥验证登录
- C#逆向反编译工具:JetBrains dotPeek
- 2019 google开发者大会 | tensorflow相关视频
- docker之网络管理
- Xamarin Mono For Android
- 爬取百度地图,获取城市楼盘信息
- worksheet怎么读_worksheet是什么意思_worksheet的翻译_音标_读音_用法_例句_爱词霸在线词典...
- 用 python 快速「卡通化」人物头像
- 带你了解CPU的世界