language-agnostic - 如何设计可扩展的软件(插件架构)?

标签 language-agnostic plugins resources extensibility

我需要一些资源来讨论如何设计可扩展的软件,即以便其他人可以编写为其添加功能的附加组件/插件。

你有什么推荐?有没有讨论这个主题的书?
我更喜欢简短而切题的内容;一些理论和一堆具体例子。

我不针对特定的语言,我希望能够理解核心思想,以便我可以用任何语言实现它。

出于同样的原因,我不喜欢使用其他人构建的框架(除非该框架不是非常高级,即不会隐藏太多),在目前我只想在这个主题上进行 self 教育并尝试各种方法来实现它。另外,框架通常假设用户了解该主题。

更新

我不是在询问 OOP 或允许继承我的类。我正在谈论设计一个将部署在系统上的应用程序,以便在部署后可以通过第三方附加组件对其进行扩展。

例如,Notepad++ 有一个插件架构,您可以将 .dll 文件放置在插件文件夹中,它会向应用程序添加不存在的功能,例如颜色选择或代码片段插入,或者许多其他东西(广泛的功能)。

最佳答案

关于language-agnostic - 如何设计可扩展的软件(插件架构)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323202/

相关文章:

language-agnostic - 术语 "URL"和 "path"可以互换吗?

java - 从版本 4.7.2 开始,ANTLR 无法生成 java 代码

image - 如何正确添加资源(*.res)文件到组件包中?

wpf - 使用资源设置窗口背景颜色

php - 国际化验证

math - float 学坏了吗?

python - 最大化函数 : what method?

testing - 是否可以仅将 Zephyr for JIRA 用于选定的项目?

qt - 是否可以在所有 Qt 程序(可能作为 qt 插件)中实现 emacs 样式的键绑定(bind)?

java - 如何从 Activity 外部访问我的资源?