理解Flux、Redux、Vuex、MobX等状态管理库原理之状态机基础知识

兄弟姐妹们在线分析下,理解Flux、Redux、Vuex、MobX等状态管理库原理之状态机基础知识
最新回答
Mentos曼妥思

2020-10-31 21:16:07

图灵机是计算机底层采用的计算模型,可视为等价于任何有限逻辑数学过程的终极强大逻辑机器;状态机(有限状态机)则是表示有限个状态及其转换和动作的数学模型,用于描述对象生命周期内的状态序列及事件响应。以下是具体说明:

图灵机
  • 定义:图灵机(Turing machine,Tm),又称确定型图灵机,是一个抽象的机器模型。它由一条无限长的纸带、一个机器头、一组内部状态以及一些固定程序构成。纸带被分成一个个小方格,每个方格可呈现不同颜色(代表不同字符);机器头能在纸带上左右移动,在每个时刻,它会从当前纸带方格读入信息,结合自身内部状态查找程序表,依据程序向纸带方格输出信息,转换自身内部状态并移动。
  • 构成要素

    字符集:由有限个字符构成。

    纸带:有起始位置,分成一格一格,每格能写一个字符,可向一方无限延伸。

    读写头:可以在纸带上一格一格左右移动,进行读写操作。

    状态集:由有限个状态构成。

    规则集:由有限个转换规则构成,每条规则根据图灵机当前所在状态和读写头当前位置纸带上的内容,决定纸带当前位置的改写字符、读写头的移动方向(向左、向右或不动)以及图灵机的新状态。

  • 本质:图灵机是有限状态机加上磁带存储器,每次转换都可能伴随对磁带的操作(移动、读取、写入)。
状态机(有限状态机)
  • 定义:有限状态机(Finite-State Machine,FSM),简称状态机,是表示有限个状态以及在这些状态之间的转换和动作等行为的数学模型。它是对真实世界的逻辑严谨的数学抽象,通常体现为一个状态转换图。
  • 特点

    状态有限性:系统在不同阶段呈现不同运行状态,这些状态是有限的、不重叠的,某一时刻系统一定处于其中一个状态。

    输入响应性:系统在特定状态下接收允许的输入,产生可能的响应,并转换到可能的状态。

  • 应用领域:在计算机科学中应用广泛,可用于建模应用行为、硬件电路系统设计、软件工程、编译器、网络协议以及计算与语言的研究。
  • 五大核心要素

    State(状态):一个状态机至少包含两个状态,状态一般成对存在,如页面中按钮的点击和未点击状态。

    Event(事件):执行某个操作的触发条件或口令,例如鼠标点击按钮就是一个事件。

    Guard(条件):状态机响应外部消息时,除判断当前状态,还需判断相关条件是否成立,这种判断称为Guard,它通过允许或禁止某些操作来影响状态机行为。

    Action(动作):执行操作或事件发生后要执行的动作,在程序中,一个Action一般对应一个函数,如鼠标点击按钮后发生的事情。

    Transition(转换):从一个状态变化为另一个状态,如按钮从未点击到点击的状态变化。引起状态转换的事件被称为触发事件或触发。

  • 构建状态机图的基本元素:构建状态机图基本要用到八个元素,包括起始终止、事件、现态(现在状态)、次态(下一状态)、历史状态、动作、条件。其中1、2元素可包含4、5元素,并无严格区分界限。构建时需确定起始与终止状态,归纳所有引起状态变化的事件,确定现态到次态在不同条件下执行的动作,并保存必要的历史状态。