发表于: 2017-04-10 20:43:10
1 1371
什么是有限状态机?
1.背景介绍
什么是有限状态机?
有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物。
如图:
有限状态机一般都有以下特点:
(1)可以用状态来描述事物,并且任一时刻,事物总是处于一种状态;
(2)事物拥有的状态总数是有限的;
(3)通过触发事物的某些行为,可以导致事物从一种状态过渡到另一种状态;
(4)事物状态变化是有规则的,A状态可以变换到B,B可以变换到C,A却不一定能变换到C;
(5)同一种行为,可以将事物从多种状态变成同种状态,但是不能从同种状态变成多种状态。
二、知识剖析
在js中,新建一个对象,用这个对象的属性来模拟元素的状态,用这个对象的方法模拟元素在不同状态的转变, 那么这个对象就是一个有限状态机。
是否可用有限状态机来描述,取决于:当前状态确定,有限个状态,响应事件,在不同状态间有规律的转变。
三、常见问题
有限状态机有哪些应用场景?
四、解决方案
满足3点即可用:所需状态确定,有事件触发转变状态,总状态有限且转变有规律。
页面可用有限状态机的元素较多且有规律时可用:例如:开关按钮,下拉菜单,
举例:杀人游戏的玩家死活状态、白天黑夜状态
五、编码实战
定义一个有三个状态的有限状态机
六、扩展思考
有限状态机有哪些优点,解决了工程中的什么问题?
七、参考文献
百度百科
http://www.ruanyifeng.com/blog/2013/09/finite-state_machine_for_javascript.html博客
《javascript高级程序设计》
www.cnblogs.com/lyzg/p/5058335.html博客园
https://github.com/jakesgordon/javascript-state-machine
github
八、更多讨论
通过对有限状态机的了解,有想用有限状态机做些什么吗?
视频地址:https://v.qq.com/x/page/f0392g0wp1p.html
ppt地址:https://ptteng.github.io/PPT/PPT/js-03-fsm.html#/
评论