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