状态机学习---处理连续性问题的利器

Posted 若栖1017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了状态机学习---处理连续性问题的利器相关的知识,希望对你有一定的参考价值。

原理
     有限状态机 把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理。
 
状态机编程思想特点
        与传统的上下文编程不同,状态机将程序的行为划分为若干个状态,对于每一个状态规定其行为和可能的状态转换关系。状态机的状态即可以由其内部定义的状态转换关系改变,也可由外部操作改变,从而影响状态机的行为
 
问题情景:动画切换。
clock svg 从箭头 变为时钟 -》字体从无到有  
arc 从一条线变为一个时钟  -》字体从无到有  
arrow svg 从时钟变为箭头 -》字体从无到有  
 
适用于需要保持自身连续性的程序
 
问题情景:[音乐播放器]编写音乐播放器,控制其播放、停止、暂停、继续等。
 
continue 继续 找到文件 跳转至播放状态
close 停止   可跳转至播放状态
playing 播放 播放文件-直到结束-然后停止 可跳转到停止或暂停状态
wait 暂停   可跳转至播放状态
over 终止 结束过程  
 
以前没接触过这些东西,导致在处理连续性的动画问题时,大量的使用sertimeout来处理,经常会产生动画混乱,并且不容易修改。改了又改,但还是一直有问题,直接接触到这个理念,感觉特别有用,使代码的结构一下子清晰不少。同时深感程序设计思想学习的重要性,希望同样遇到这种问题的你,通过这种方法解决问题。

 

以上是关于状态机学习---处理连续性问题的利器的主要内容,如果未能解决你的问题,请参考以下文章

android中状态机原理之状态机的两种写法

android中状态机原理之状态机的两种写法

提问回顾与个人总结

副本和分区状态机

PLC状态机编程-如何在STL中使用状态机

quagga源码学习--BGP协议对等体的状态机