JS语言下的有限状态机设计及实现
概念
有限状态机(FSM)是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。
引用
在开发某个应用时,需要根据该应用内部的状态的改变来执行一些逻辑代码,比如应用的生命周期特性就可用该功能实现,我们试着用JS语言实现一个有限状态机模型
实现
步骤
假设现在已经有一个有限状态机,我们应该怎么使用它呢?
- 先创建一个有限状态机实例
- 绑定对应的主体和要观察的内部状态(也即主体属性)
- 定义状态的流转,以及对应要执行的逻辑代码(回调函数)
以Vue组件的生命周期举例说明:未实例化(挂载前)正在挂载(挂载结束)(更新前)正在更新(更新结束)(销毁前)正在销毁(销毁结束)
由此,我们可以得出一个状态必有两个触发方法,在进入该状态前要执行的逻辑代码和离开该状态时要执行的逻辑代码。