js中如何有效使用有限状态机实现模块化?
有限状态机有3个特性:
- 有限的state
- 可以从一种state转移另一种state
- 同一时间只能处于一种state
如果要用这些特性实现模块化,那么事件和控制权很重要。
state在转移的时触发事件的同时,将控制权交给下一个要执行动作的模块,不过这就需要模块间不互相依赖,模块间通信也得采用事件(subscribe)通知的形式。
最后附上一个star很多的framework: https://github.com/jakesgordon/javascript-state-machine/