Erlang:在同一个模块中定义了多个行为?

jld*_*ont 14 erlang

:我想了解在同一模块文件中定义多个行为的优缺点.

例如

 -module(someapp_sup).
 -behavior(supervisor).
 -behavior(application).
Run Code Online (Sandbox Code Playgroud)

使用这种布局,我可以保存模块文件,同时在可维护性方面没有太多损失(整个应用程序启动someapp_sup:start()).

rfu*_*duk 17

只要行为中定义的回调不与另一个行为的回调冲突(例如,您定义了自己的行为),那么除了可能更容易混淆的代码之外,执行此操作没有任何问题.显然你可以用一些好的评论来遏制它,并在文件中合理地放置代码.

  • 究竟.您可以像处理OO世界中的接口一样处理行为. (6认同)