1
6
插件通过遵循主应用程序期望使用的已知接口来工作。 插件架构实际工作的方式有几种,但一般来说,这些步骤如下:
以下是应用程序查找插件的两种方法(几种方法中的一种):
当找到插件时,它们由应用程序加载(有时是 类加载器 ) 当软件架构师期望软件提供者或用户社区实现最初不是系统一部分的新功能时,他们可以设计一个插件架构。两个很好的例子是Eclipse和Firefox;其他应用程序包括Adobe Photoshop(用于艺术技术和图形工具)和Winamp(用于可视化)。 |
2
7
如果您想了解一些源代码, Paint.NET 是免费的,开源的,有一个插件架构。 |
3
1
程序通常必须设计为寻找插件,插件必须有一个标准的访问点来接受来自主程序的控制。每一个应用程序或网站都有一些不同。 最简单的插件类型是这样访问的:
在这种情况下,主程序被编码为只处理一组特定的插件(许多基于PHP的WordPress模板都是这样)。稍微高级一点的插件
第二种情况可以处理非常复杂的插件…插件只需要实现主程序调用的更多函数。 |
4
1
Eclipse在应用程序框架的示例中 完全地 基于插件,这意味着所有功能都作为插件实现。在底层有一个用于启动/关闭和插件管理的薄层,但除此之外的一切都是作为插件实现的。这就产生了一个框架,可以用于几乎所有事情。有关Eclipse插件体系结构的更多信息,请参见: http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html . |
5
1
它依赖于语言。 在解释语言中,它只涉及调用遵循模式的文件。 在C语言中,没有帮助是很难做到的。在C+Windows中,一个“dll”可以是一个插件,通常是这样使用的。 在具有反射的OO语言中,您可以创建一个实现接口的对象并反射地加载它。加载后,可以忽略它是一个插件的事实,因为它在代码中被视为任何其他对象。 .NET有一个插件架构(它是COM吗?)好吧,无论如何,COM可以用作(是?)插件系统。 由于各种可能性,你的问题可能过于开放。没有单一的答案。 |
6
1
我从来没有写过插件系统。但这就是我脑海中的想象:
|
7
0
插件系统可以以多种方式实现,但是很多C/C++应用程序的通用方式是基于DLL的插件SDK。 DLL将公开各种自动函数调用,这些调用可能允许插件在正在运行的应用程序中“自行设置”,例如添加菜单项、新功能或系统的额外选项(如3D渲染实现)。 |
8
0
更重要的是,不需要任何特殊的发现——插件机制通常是愚蠢的:这是我理解的代码签名,这是我可以做的调用。我不知道我打电话的事情会如何完成这项工作,但我希望结果是某种形式的。这几乎是一份合同。现在-插件将实现合同并使自己可用。在Java中,例如“使可用”仅仅意味着实现类被加载到内存中。特定数据库的JDBC驱动程序就是一个很好的例子。 |
clorisanderton · 可能的Git扩展 6 年前 |
GeorgeK · Nativescript联系人列表插件 6 年前 |
Kazora · 我在插口插件中的命令不起作用 6 年前 |
E235 · 如何搜索Docker插件 6 年前 |