我是靠谱客的博主 包容店员,最近开发中收集的这篇文章主要介绍有限状态机是什么?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.背景介绍

有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机, 是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

 

其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中, 有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。

有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物。它 是一个数学模型。是一个抽象机器,在任何时候都可以处于有限数量的状态之一。响应某些外部输入, FSM可以从一个状态转换到另一个状态; 从一种状态到另一种状态的变化称为过渡。 状态机的行为可以在现代社会中的许多设备中观察到,这些设备根据它们呈现的事件序列执行预定的一系列行为。 例如自动售货机,当存放适当的硬币组合时分配产品,当车辆等待时改变顺序的交通灯等。


在我们前端开发中,我们可以套用有限状态机模型,将业务流程状态化,划分状态和相应的触发事件与动作,利用生命周期事件进行控制与执行


2.知识剖析

我们来看一下阮一峰对有限状态机的描述


它有三个特征:


状态总数(state)是有限的。
任一时刻,只处在一种状态之中。
某种条件下,会从一种状态转变(transition)到另一种状态。
有限状态机一般都有以下特点:


(1)可以用状态来描述事物,并且任一时刻,事物总是处于一种状态;


(2)事物拥有的状态总数是有限的;


(3)通过触发事物的某些行为,可以导致事物从一种状态过渡到另一种状态;


(4)事物状态变化是有规则的,A状态可以变换到B,B可以变换到C,A却不一定能变换到C;


(5)同一种行为,可以将事物从多种状态变成同种状态,但是不能从同种状态变成多种状态。


 


3.常见问题

 

有限状态机有如何应用在具体场景?

 


4.解决方案

 

满足3点即可用:所需状态确定,有事件触发转变状态,总状态有限且转变有规律。


页面可用有限状态机的元素较多且有规律时可用:例如:开关按钮,下拉菜单,


还有任务中杀人游戏的玩家死活状态、白天黑夜状态等

 


5.编码实战

信号灯


6.参考文献

 

参考一:有限状态机库

参考二:js与有限状态机

参考三:阮一峰的有限状态机

7.更多讨论

1.有限状态机有哪些优点?

答:有限状态机的写法,逻辑清晰,表达力强,有利于封装事件。一个对象的状态越多、发生的事件越多,就越适合采用有限状态机的写法。

2.为什么声明了有限状态机没有效果?

答:使用有限状态机的第一步是要引入有限状态机的js库,不然是无法使用的。

3.可以用原生的js来模仿有限状态机吗?

答:可以,通过多个条件语句来触发事件和限制状态,不过推荐这种做法,这样会导致代码臃肿和难以维护。

 

PPT:https://it-xzy.github.io/WEB-NEW/2018-6-14-C-js4-tds.html
腾讯视频:https://v.qq.com/x/page/t0690yy3a26.html


更为清爽的浏览体验,请移步我的个人博客 
天心天地生的个人博客

最后

以上就是包容店员为你收集整理的有限状态机是什么?的全部内容,希望文章能够帮你解决有限状态机是什么?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部