版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
有限状态机(FSM)编程修炼黄师傅
第一章20多年以前,DavidHarel创造了状态机理论来描述复杂的交互系统。随后,状态机理论赢得了广泛的接受,并且被引入到许多软件系统中,最突出的是被引入到UML中作为其一个组成部分。
什么是有限状态机有限状态机系统,是指在不同阶段会呈现出不同的运行状态的系统,这些状态是有限的、不重叠的。这样的系统在某一时刻一定会处于其所有状态中的一个状态,此时它接收一部分允许的输入,产生一部分可能的响应,并且迁移到一部分可能的状态。
第一章有限状态机要素Transition(迁移)从一个状态切换到另一个状态被称为Transition(“迁移”)。引起状态迁移的事件被称为triggeringevent(“触发事件”),或者被简称为trigger(“触发”)。
Action(动作)当一个Event被状态机系统分发的时候,状态机用Action(“动作”)来进行响应,比如修改一下变量的值、进行输入输出、产生另外一个Event或者迁移到另外一个状态等等。
FSMActionTransitionStateGuardEventState(状态)一个系统在其生命周期中某一时刻的运行情况,此时,系统会执行一些动作或者等待一些外部输入。Guard(条件)状态机对外部消息进行响应的时候,除了需要判断当前的状态,还要判断跟这个状态相关的一些条件是否成立。这种判断称为guard(“条件”)。guard通过允许或者禁止某些操作来影响状态机的行为。
Event(事件)就是在一定的时间和空间上发生的对系统有意义的事情。第二章为什么要用状态机编程节省时间
从无序的,繁重的工作中解脱
第三章状态机修编程炼IF...ELSEIF...ELSE1SWITCH...CASE2第三章状态机修编程炼SWITCH...CASE2第三章状态机修编程炼SWITCH...CASE2第三章状态机修编程炼SWITCH...CASE2第三章状态机修编程炼分析:这个是最简单、最常用的FSM实现方法。通过嵌套的2层switchcase实现。外层switchcase判断状态,内层switchcase判断消息。状态采用枚举量。优点:结构简单,便于理解。缺点:代码冗长。结论:这种代码结构感觉比较冗长,不建议在复杂的状态机中使用。优缺点TABLE13第三章状态机修编程炼TABLE13第三章状态机修编程炼这种FSM实现方法对switchstatement进行了改良。根据state、event做成了2维表格,表格中的项就表示action和transition。状态采用枚举量。优点:结构简单,便于理解。代码比较简练。效率最高。缺点:代码结构不是太好,仍然只是针对具体问题。结论:这是一种常用的实现方法。如果没有更好的选择,可以使用。优缺点TABLE23第三章状态机修编程炼这TABLE2只是TABLE1的改良版本,将Action封装API。优缺点TOOLvsLIB4第三章状态机修编程炼TOOLLIBVSTABLE3TABLE4---TOOL4第三章状态机修编程炼这TABLE4只是TABLE3的改良版本,更规范些。这以上宏定义ini的状态机。TABLE3TABLE4---TOOL4第三章状态机修编程炼这TABLE4只是TABLE3的改良版本,更规范些。ini_trans_define对ini状态机进行初始化,及转换表的设置。TFSM_DISPATCH实现事件分发。TABLE5---LIB4第三章状态机修编程炼通过这些api调用实现状态机编程。TOOLvsLIB一个是产生代码,一个是提供api供调用者调用。总结4第三章状态机修编程炼状态机编程修炼唯一没用到得元素Guard,供大家讨论如何是用。该怎样进行时间管理效益效能效率勤恳分享时间产生的效益和“效能、效率、勤恳”三要素之间的关系为:效益(Benefit)效果与利益,是最终追求的结果效能(Effectiveness)强调目的正确、效果有利效率(Efficiency)是指在单位时间里完成的工作量勤恳(Diligence)充分利用时间,不浪费在这三个要素中,效能最为重要,效率次之,勤恳再次之。也就是说,做好时间管理,选择做最重要的事(效能)是根本,然后再正确地去做事(效率),最后再根据前两个要素的实际效果并结合原定计划,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年店面装修合同格式范文(三篇)
- 2024年工程施工劳务承包协议(二篇)
- 2024年非全日制劳动合同标准版本(三篇)
- 2024年电器购销合同样本(二篇)
- 中考语文复习写作要素归纳
- 2024年湖北广水市九年级语文4月中考二模试卷附答案解析
- 棚架检算书(正式版)
- 桥梁技术状况指数
- 设计前期与场地设计(一级):中国古代建筑史测试题(强化练习)
- 板式换热器技术方案
- 整体责任制护理讲解
- 2024年金华市婺州粮食收储限公司公开招聘工作人员高频考题难、易错点模拟试题(共500题)附带答案详解
- 校园共享单车营销策略
- 薪酬套改工作方案
- 2022-2023学年高一下数学:概率(附答案解析)
- 部编版语文五年级上册第一单元分层作业设计
- 数字化医院医疗质量评估与监控方案
- 钢板桩引孔施工方案
- 进出口贸易行业安全培训
- 动脉血栓护理查房
- 芳香疗法行业趋势分析
评论
0/150
提交评论