我需要一些关于如何设计可扩展软件的资源,即其他人可以编写插件/附加组件来增加其功能。
你有什么建议?有没有讨论这个主题的书籍? 我希望内容简洁明了;一点理论和大量具体示例。
我不针对特定的语言,我想能够理解核心思想,以便在任何语言中实现它。
出于同样的原因,我更倾向于不使用其他人构建的框架(除非框架不是非常高级,即不会隐藏“太多”),目前我只想在这个主题上进行教育和尝试各种实现方式。 此外,框架通常假定用户对该主题有所了解。
更新
我不是在问面向对象编程或允许我的类被继承。 我是说设计一个应用程序,部署在系统上,使得可以在其部署之后通过第三方插件扩展。
例如,Notepad ++具有插件架构,您可以将.dll文件放置在插件文件夹中,它会添加以前不存在的应用程序功能,例如拾色器、代码片段插入或许多其他功能(广泛的功能范围)。