1

作为库设计者,编写库以便可以通过外部插件扩展的一些常见模式/技巧是什么?

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

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

    有任何想法吗?

    4

    0 回答 0