【发布时间】:2010-09-24 07:18:58
【问题描述】:
我需要一些资源来讨论如何将您的软件设计为可扩展的,即,以便其他人可以编写为其添加功能的附加组件/插件。
你有什么推荐的?有没有讨论这个主题的书?
我更喜欢简明扼要的东西;一点理论和一堆具体的例子。
我不是针对特定的语言,我希望能够理解核心思想,以便我可以用任何语言实现它。
出于同样的原因,我不喜欢使用其他人构建的框架(除非框架不是非常高级,即不会隐藏太多太多),在那一刻我只想对这个主题进行自我教育并尝试各种方法来实现它。此外,框架通常假设用户了解该主题。
更新
我不是在询问 OOP 或允许我的类被继承。我说的是设计一个将部署在系统上的应用程序,这样它就可以在部署后由第三方插件进行扩展。
例如,Notepad++ 有一个插件架构,您可以在其中将 .dll 文件放置在 plugins 文件夹中,并为应用程序添加不存在的功能,例如颜色选择或 sn-p 插入,或许多其他东西(广泛的功能)。
【问题讨论】:
-
我想您会发现大多数插件环境都提供了用于编写插件的基类。您的自定义第 3 方插件将从基类派生,并扩展它的“插件标准”功能。
-
您会发现 Firefox 和 Notepad++ 等软件的可扩展性源于其 OO 设计根源。使您的类可扩展的同一原则将有助于使您的整个软件可扩展。
标签: language-agnostic plugins resources extensibility