Erlang 模块化gen_fsm行为实现

Erlang 模块化gen_fsm行为实现,erlang,Erlang,我有一个gen_fsm实现,它有很多状态和大量代码(超过2000行代码)。有没有办法让gen_fsm模块化,比如插件系统?但我希望fsm能够在位于不同插件中的状态之间切换 您可以创建erlang模块。我在看,您可以将任何函数交换到它自己的模块 例如,假设您有一个事件处理程序,如 handle_event(wakeup, StateName, State) -> %% rest of the body 您可以创建一个新

我有一个gen_fsm实现,它有很多状态和大量代码(超过2000行代码)。有没有办法让gen_fsm模块化,比如插件系统?但我希望fsm能够在位于不同插件中的状态之间切换

您可以创建erlang模块。我在看,您可以将任何函数交换到它自己的模块

例如,假设您有一个事件处理程序,如

 handle_event(wakeup, StateName, State) -> 
                                  %% rest of the body
您可以创建一个新模块并将handleevent的定义移动到那里

  -module(wakeup_event).
   -export(wakeup/3).

    wakeup(_wakeup,Statename, State)-> %%do something here
                                       {nextstate, Statename,State}.
从handle_事件中调用它,如下所示

   handle_event(wakeup,Statename,State)-> 
             wakeup_event:wakeup(wakeup,Statename,State);