作为库设计者,编写库以便可以通过外部插件扩展的一些常见模式/技巧是什么?
以下是插件可能想要做的一些事情:
我的第一直觉是将这些作为事件公开,可以从插件附加回调(例如 onCommandLoaded、onCommandMatched、onSpeechRecognized 等)。换句话说,允许插件订阅由库发布的事件。但这很容易随着更多功能的需求而增长,并且不允许插件扩展我没有预料到的功能(我仍然不确定这是否是一件坏事)。
有任何想法吗?
作为库设计者,编写库以便可以通过外部插件扩展的一些常见模式/技巧是什么?
以下是插件可能想要做的一些事情:
我的第一直觉是将这些作为事件公开,可以从插件附加回调(例如 onCommandLoaded、onCommandMatched、onSpeechRecognized 等)。换句话说,允许插件订阅由库发布的事件。但这很容易随着更多功能的需求而增长,并且不允许插件扩展我没有预料到的功能(我仍然不确定这是否是一件坏事)。
有任何想法吗?