需要插件驱动设计技术吗?

时间:2009-10-14 04:16:29

标签: plugins

我的一群人正在开始的项目将围绕使用非常特定于用户的插件。我们试图基本上创建一个应用程序,没有插件只不过是一个运行环境,因此将通过添加用户特定的插件来驱动。

我在围绕插件设计应用程序的这方面没有太多经验。我应该如何创建一个基本的,基本上是抽象的应用程序,然后创建这些“动态”特定于用户的插件供应用程序使用?

1 个答案:

答案 0 :(得分:2)

正如'hobbs'指出的那样,知道这种语言对于获得更好的答案是有益的!

但无论如何,我将向您详细介绍在Java或任何其他面向对象语言中经常使用的命令设计模式。

Command Design Pattern - WikipediaCommand Design Pattern - Java Tip 68(有关实施细节)

当我知道我想要以通用的方式运行'插件'时,我经常使用这种模式(有时当我在那个时间点没有所有细节时)。有了更多规范和/或安全约束,您可能希望相应地修改此模式,并包括沙箱限制等等。这完全取决于您!

您的客户端将首先使用您提供的界面编写插件(请参阅上面的链接)。使用已编译的类,您的客户端就可以将其插件放入文件夹中,例如。

当您的应用程序准备运行插件时,您将加载一个插件候选列表(xml文件或扫描特定目录中的类文件)并加载每个类以便逐个执行它们。 / p>

您可以决定是以特定顺序还是并行运行这些插件(线程设计)。

请注意,如果您的插件必须访问特定的状态或API,则可以将其作为插件的参数提供。

所有这些都非常有效,我相信它很容易适应几乎任何语言。

祝你好运,

Jeach!