当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何设计可扩展的软件(插件架构)?》经验,为你挑选了2个好方法。

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

您有什么推荐的吗?那里有讨论这个主题的书吗?
我更喜欢那些简短而重要的东西; 一点理论和一堆具体的例子.

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

出于同样的原因,我宁愿不使用其他人构建的框架(除非框架不是非常高级,即不会隐藏太多),目前我只想教育自己主题和实验以各种方式实现它.此外,框架通常假定用户对该主题的了解.

UPDATE

我不是在询问OOP或者是否允许我的类被继承.我所说的是设计一个将部署在系统上的应用程序,以便在部署之后可以通过第三方附加组件进行扩展.

例如,Notepad ++有一个插件架构,您可以将.dll文件放在plugins文件夹中,并为不存在的应用程序添加功能,例如颜色选择或片段插入,或许多其他内容(广泛的功能).



1> bugmagnet..:

如果我们正在谈论.NET,请尝试在CodeProject上使用VBScript编写.NET应用程序.那里有很多具体的例子.

以下是实现各种应用程序扩展技术的站点

ClearScript - 使.NET应用程序可以使用V8,VBScript和JScript

CS脚本 - C#脚本引擎

使用C#的插件架构

Opinio插件架构

有关Eclipse插件架构的说明

初学者的插件架构框架

Gecko插件架构

Fungimol插件架构



2> VonC..:

OSGI是一个技术框架的一个很好的实际例子,可以让你做你想做的事情.

该理论是在这里.

的(免费!)书是有.

可扩展性和编写插件的能力必须处理服务生命周期

在现场添加/删除服务/插件

管理服务之间的依赖关系

管理服务状态(声明,安装,启动,停止......)

什么是OSGI?

模块的主要功能之一是作为部署单元......我们可以构建或下载并安装这些功能以扩展应用程序的功能.

你会在这里找到一个很好的介绍,关于服务的核心概念(与你的问题有关,它解释了服务的一些问题,可扩展性的关键组件).

提取:

如果没有它们可以构建如此多的应用程序,为什么服务如此重要?嗯,服务是将软件组件相互分离的最着名的方法.

服务最重要的一个方面是它们显着地减少了类加载问题,因为它们使用对象的实例,而不是类名.由提供者而不是消费者创建的实例.降低复杂性是非常令人惊讶的

服务不仅可以最大限度地减少配置,还可以显着减少共享包的数量.


请看http://stackoverflow.com/questions/106222/what-does-osgi-solve
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有