允许JS库支持插件的常见模式

时间:2013-10-11 15:01:07

标签: javascript design-patterns

作为库设计师,编写库的常用模式/技巧是什么,以便可以通过外部插件进行扩展?

以下是插件可能要做的一些事情:

  • 为库的基本方法添加日志记录支持。例如,将库中的一个核心(私有)方法输出到控制台以进行调试 - 允许我从https://github.com/TalAter/annyang/blob/master/annyang.js中删除所有console.log调用
  • 为库事件添加视觉提示和效果。例如,当SpeechRecognition库开始收听时显示扬声器图标。
  • 我的第一直觉是将那些事件公开,可以从插件中附加回调(例如onCommandLoaded,onCommandMatched,onSpeechRecognized等)。换句话说,允许插件订阅由库创建的事件。但是随着更多功能的请求,这可以轻松地增长和增长,并且不允许插件扩展我没有预料到的功能(我仍然不确定这是否是一件坏事)。

    有什么想法吗?

    0 个答案:

    没有答案