状态机的概念是什么 状态机的概念是什么
状态机是什么概念?以下文字资料由边肖为大家收集出版。让我们快速看一下它们。
对状态机极其准确的描述是,它是一个有向图,由一组节点和一组对应的转移函数组成。
状态机通过响应一系列事件来“运行”。
每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的子集。
该函数返回“下一个”节点。
这些节点中至少有一个必须处于最终状态。
当达到最终状态时,状态机停止。
一种计算模型,包含一组状态、一个起始状态、一组输入符号、一个映射输入符号和一个从当前状态到下一个状态的转换函数。
当输入符号串时,模型进入初始状态。
要改变到新的状态就要看转换函数了。
在有限状态机中,有许多变量,例如,状态机具有许多与动作转变或状态、多个初始状态、基于无输入符号的转变或指定符号和状态的多个转变、分配给接收状态的一个或多个状态等相关联的动作。
传统应用的控制流程基本上是顺序的:按照预先设定的逻辑,从头到尾执行。
很少有事件能改变标准的实施过程;而这些事件主要涉及异常情况。
命令行工具是这种传统应用程序的典型例子。
另一种应用程序是由外部事件驱动的——换句话说,事件是在应用程序之外生成的,不能由应用程序或程序员控制。
要执行的特定代码取决于接收到的事件或其相对于其他事件的到达时间。
因此,控制流既不能是顺序的,也不能是预设的,因为它依赖于外部事件。
事件驱动的图形用户界面应用程序是这种应用程序的典型例子,它由命令和选择驱动。
Web应用是由用户请求提交的表单和网页驱动的,也可以分为以上几类。
然而,GUI应用程序对接收到的事件仍然有一定程度的控制,因为这些事件依赖于向用户显示的窗口和控件,并且窗口和控件由程序员控制。
Web应用则不然,因为一旦用户采取了意想不到的动作,很容易打乱设计好的应用逻辑。
显然,必须采用不同的技术来处理这些情况。
它可以以任何顺序处理事件,并提供有意义的响应——即使这些事件的顺序与预期的不同。
有限状态机就是为满足这一要求而设计的。
有限状态机是一种概念性的机器,它可以采取一些动作来响应外部事件。
采取的具体行动不仅取决于接收到的事件,还取决于每个事件的相对发生顺序。
这是可以做到的,因为机器可以跟踪内部状态,该状态将在收到事件后更新。
响应事件的动作不仅取决于事件本身,还取决于机器的内部状态。
此外,采取的措施将决定和更新机器的状态。
这样,任何逻辑都可以被建模为一系列事件/状态组合。
参考://baike.baidu/view/1906565。
文章评论