发表于: 2017-04-07 23:05:29

2 1187


有限状态机是什么?

1.背景介绍

什么是有限状态机?

                    有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物。

如图:

                

                有限状态机一般都有以下特点:

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

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

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

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

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

         

 2.知识剖析

           

     在js中,新建一个对象,用这个对象的属性来模拟元素的状态,用这个对象的方法模拟元素在不同状态

的转变, 那么这个对象就是一个有限状态机是否可用有限状态机来描述,却决于:当前状态确定,有限个

状态,响应事件,在不同状态间有规律的转变。

              

3.常见问题

有限状态机有哪些应用场景?


解决方案

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

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

举例:《杀人游戏的玩家死活状态、白天黑夜状态、》

  

4.编码实战

       定义一个有三个状态的有限状态机

       请见demo或视频

5.扩展思考

         

有限状态机有哪些优点,解决了工程中的什么问题?

有限状态机里的this是如何指向的。

有限状态机的其他写法

        

6.参考文献

          

百度百科:http://baike.baidu.com/link?url=JCWzau_ENjIdQjYvgejhF-Q5kGz3LS2b42ZbCGmR_pdDEy1A_8ILrgnGmvynx7YARL7Ep1f_lpu06gne41OQEyTt63930zZfhhUrkjKEEQ4G2D-y5AE7HV35TY7v_Xd-vPGFX24oJHOET1ljS7Uj3_

博客:http://www.ruanyifeng.com/blog/2013/09/finite-state_machine_for_javascript.html

《javascript高级程序设计》

博客园:http://www.cnblogs.com/lyzg/p/5058335.html

github:https://github.com/jakesgordon/javascript-state-machine

     

7.更多讨论

下面是一起讨论的时间

       

鸣谢

感谢大家观看</p>


BY : 刘其勇 | 龚家豪

 



返回列表 返回列表
评论

    分享到