发表于: 2019-08-21 23:24:23

1 700


今天完成的事:

了解有限状态机,画思维脑图整理逻辑关系。画的有点丑

明天计划的事:

开始写js代码

遇到的问题:

暂无

收获:

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

* 状态总数(state)是有限的。  

* 任一时刻,只处在一种状态之中。  

* 某种条件下,会从一种状态转变

1.状态机的要素
可归纳为4个要素:现在状态,条件,动作,次状态。
“现在状态”和“条件”是因,“动作”和“条件”是果,有因才有果。
①现态:是指当前所处的状态。
②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或执行一次状态的迁移。
③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件瞒足后,也可以不执行任何动作,直接迁移到新状态。
④次态:条件满足后要迁往那个的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

(transition)到另一种状态。 对于js来说 很多对象可以写成有限状态机。 有限状态机的写法,逻辑清晰,表达力强,有利于封装事件。一个对象的状态越多、发生的事件越多,就越适合采用有限状态机的写法。 JavaScript语言是一种异步操作特别多的语言,常用的解决方法是指定回调函数,但这样会造成代码结构混乱、难以测试和除错等问题。有限状态机提供了更好的办法:把异步操作与对象的状态改变挂钩,当异步操作结束的时候,发生相应的状态改变,由此再触发其他操作。这要比回调函数、事件监听、发布/订阅等解决方案,在逻辑上更合理,更易于降低代码的复杂度。


返回列表 返回列表
评论

    分享到