了解状态机图
从第一次认识到状态机这个概念程序设计似乎就从未离开过它通过广大网友的技术分享本文对状态机再做一次总结。了解什么是状态机图它的使用场景是什么一、什么是状态机做产品的时候我们总能遇到一些比较复杂的逻辑问题而普通的流程图或时序图对于对象和状态的解读缺乏直观的描述。这里我们推荐使用简单的状态图来对逻辑问题进行描述有限状态机英语Finite-state machine, FSM又称有限状态自动机简称状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。有限状态机是一种用来进行对象行为建模的工具其作用主要是描述对象在它的生命周期内所经历的状态序列以及如何响应来自外界的各种事件。在计算机科学中有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程编译器、网络协议、和计算与语言的研究。二、状态机图怎么画基本元素当你需要描述一个对象或系统的行为状态时相比于直接的语言描述更推荐使用状态机表或状态机图的形式。首先我们看一下基本元素做需求时需要了解以下六种元素起始、终止、现态、次态目标状态、动作、条件我们就可以完成一个状态机图了①现态是指当前所处的状态。②条件又称为“事件”当一个条件被满足将会触发一个动作或者执行一次状态的迁移。③动作条件满足后执行的动作。动作执行完毕后可以迁移到新的状态也可以仍旧保持原状态。动作不是必需的当条件满足后也可以不执行任何动作直接迁移到新状态。④次态条件满足后要迁往的新状态。“次态”是相对于“现态”而言的“次态”一旦被激活就转变成新的“现态”了。注意事项1、避免把某个“程序动作”当作是一种“状态”来处理。那么如何区分“动作”和“状态”“动作”是不稳定的即使没有条件的触发“动作”一旦执行完毕就结束了而“状态”是相对稳定的如果没有外部条件的触发一个状态会一直持续下去。2、状态划分时漏掉一些状态导致跳转逻辑不完整。所以在设计状态机时我们需要反复的查看设计的状态图或者状态表最终达到一种牢不可破的设计方案。状态机表怎么画首先我们看下下面这张状态机图展示了一张简单的单审批人文件的状态流转情况。那么如何把他写成表呢这里有多种写法区别于纵坐标的不同我们举两种左侧的纵坐标为初始状态横坐标为终止状态。右侧的纵坐标为动作条件横坐标为终止状态。那么对于动作比较多且复杂的情况下可以考虑采用右侧的表格这样会比较一目了然。三、使用场景状态机图经常应用在程序的设计过程中使用清晰明了的状态机图设计代码逻辑架构再使用编程语言去实现。当然也可以画一个状态机图来展示某岗位的工作在另一篇博文中将介绍使用C语言来实现状态机的设计。https://blog.csdn.net/xinghuanmeiying/article/details/89387451

相关新闻

springmvc二十一:自定义类型转换器

springmvc二十一:自定义类型转换器

ConversionService:是一个接口;它里面有一个Converter(转换器)进行工作①实现一个Converter接口,写一个自定义的类型转换器②Converter是ConversionService中的组件。自定义Converter得放进ConversionService中, 同时将WebDataBinder中的ConversionService设置成我们这个加了自…

2026/7/28 19:18:16阅读更多 →
【MyBatis】Mybatis实现分页效果

【MyBatis】Mybatis实现分页效果

源代码:GitHub链接 环境: Eclipse项目web 3.0Tomcat 8.5 用到的技术: MyBatisLog4JJSTL基本的…Java Servlet,JSP,… 使用方式: 直接运行ShowServlet.java(选择Run on server),即可在网页中看到分页效果&#xf…

2026/7/28 19:18:16阅读更多 →
Citra模拟器:在电脑上完美运行3DS游戏的终极指南

Citra模拟器:在电脑上完美运行3DS游戏的终极指南

Citra模拟器:在电脑上完美运行3DS游戏的终极指南 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra 想要在电脑上重温《精灵宝可梦》、《火焰纹章》、《动物之森》这些经典的任天堂3DS独占游戏吗&#xf…

2026/7/28 19:18:16阅读更多 →
AI辅助Python编程入门:从零搭建环境到实战项目开发

AI辅助Python编程入门:从零搭建环境到实战项目开发

很多朋友想学 Python,但面对海量教程和复杂环境配置,往往还没开始就放弃了。传统的学习路径需要自己安装环境、配置 IDE、手动调试,一个简单的语法错误可能就要卡半天。现在,借助 AI 编程助手,学习 Python 的门槛被大幅降低。你可以像拥有一个随时在线的编程导师,它能帮你…

2026/7/28 20:40:45阅读更多 →
Transformer逆向视角训练:提升组合推理能力的语义场方法

Transformer逆向视角训练:提升组合推理能力的语义场方法

在深度学习领域,Transformer架构已经成为自然语言处理乃至计算机视觉任务的主流选择。然而,随着模型规模的不断扩大和应用场景的日益复杂,研究者们开始关注Transformer在组合推理任务中的局限性。最近的研究表明,传统Transformer模型在处理需要多步推理的组合性任务时,往往…

2026/7/28 20:40:45阅读更多 →
JPA EntityManager

JPA EntityManager

一、EntityManager 详解 1.1 定义与核心定位 EntityManager 是 JPA(Java Persistence API)的核心接口,首次在 EJB 3.0 规范(JSR 220,2006 年)中定义。它负责管理实体对象的生命周期,提供保存、更新、删除和查询实体等持久化操作。 本质理解:EntityManager 是应用程序…

2026/7/28 20:40:45阅读更多 →
科学育儿:婴儿抱被的正确使用与材质选择

科学育儿:婴儿抱被的正确使用与材质选择

1. 婴儿抱被的认知误区与真相揭秘 新手爸妈们第一次抱起那个柔软的小生命时,总会不自觉地用抱被将宝宝裹得严严实实。但你可能不知道,我们习以为常的"粽子式包裹法"正在被现代育儿理念重新定义。传统观念认为抱被就是要捆紧防着凉,…

2026/7/28 20:40:45阅读更多 →
超大规模数据表SQL服务:十亿行百万列数据处理方案

超大规模数据表SQL服务:十亿行百万列数据处理方案

这次我们来看一个专门处理超大规模数据表的 SQL 服务项目。这个项目的核心价值在于能够高效处理包含数十亿行或高达百万列的数据表,对于需要处理海量结构化数据的场景来说,这是一个值得关注的技术方案。从项目标题可以看出,这个 SQL 服务主要…

2026/7/28 20:40:45阅读更多 →
2026大模型API成本真相:企业为什么不能只看每百万Token单价

2026大模型API成本真相:企业为什么不能只看每百万Token单价

文章摘要 企业在选择OpenAI、Anthropic或Google模型时,最容易犯的错误是把“每百万Token价格”当作最终成本。真实生产成本还包括输出长度、思考Token、上下文重复、缓存写入、搜索、文件检索、代码执行、Agent循环、失败重试、并发、数据驻留、日志和人工审核。 …

2026/7/28 20:38:44阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →