我的一群人正在开始的项目将围绕使用非常特定于用户的插件。我们试图基本上创建一个应用程序,没有插件只不过是一个运行环境,因此将通过添加用户特定的插件来驱动。
我在围绕插件设计应用程序的这方面没有太多经验。我应该如何创建一个基本的,基本上是抽象的应用程序,然后创建这些“动态”特定于用户的插件供应用程序使用?
答案 0 :(得分:2)
正如'hobbs'指出的那样,知道这种语言对于获得更好的答案是有益的!
但无论如何,我将向您详细介绍在Java或任何其他面向对象语言中经常使用的命令设计模式。
见Command Design Pattern - Wikipedia和 Command Design Pattern - Java Tip 68(有关实施细节)
当我知道我想要以通用的方式运行'插件'时,我经常使用这种模式(有时当我在那个时间点没有所有细节时)。有了更多规范和/或安全约束,您可能希望相应地修改此模式,并包括沙箱限制等等。这完全取决于您!
您的客户端将首先使用您提供的界面编写插件(请参阅上面的链接)。使用已编译的类,您的客户端就可以将其插件放入文件夹中,例如。
当您的应用程序准备运行插件时,您将加载一个插件候选列表(xml文件或扫描特定目录中的类文件)并加载每个类以便逐个执行它们。 / p>
您可以决定是以特定顺序还是并行运行这些插件(线程设计)。
请注意,如果您的插件必须访问特定的状态或API,则可以将其作为插件的参数提供。
所有这些都非常有效,我相信它很容易适应几乎任何语言。
祝你好运,Jeach!