我的一个小组正在启动的一个项目将专注于插件的使用,这些插件非常特定于用户。我们试图在本质上创建一个没有插件的应用程序,它只不过是一个运行环境,因此将由添加的特定于用户的插件驱动。
在围绕插件设计应用程序方面,我没有太多的经验。我应该如何创建一个基本的、本质上抽象的应用程序,然后创建这些“动态的”特定于用户的插件供应用程序使用?
发布于 2009-10-16 19:29:39
正如“hobbs”指出的那样,了解这门语言将有助于获得更好的答案!
但不管怎样,我将详细介绍在Java或任何其他面向对象语言中经常使用的命令设计模式。
查看Command Design Pattern - Wikipedia和Command Design Pattern - Java Tip 68 (有关实现的详细信息)
当我知道我想要以一种通用的方式运行“插件”时,我经常使用这个模式(有时当我不知道所有细节的时候)。有了更多的规范和/或安全约束,你会想要改变这个模式,而不是这些约束,并包括沙箱限制,等等。这都取决于你!
您的客户将首先使用您提供的接口编写插件(参见上面的链接)。例如,有了一个编译好的类,你的客户端就可以将它们的插件放到一个文件夹中。
当您的应用程序准备好运行插件时,您将加载一个候选插件列表( xml文件或扫描特定目录中的类文件),并加载每个类,以便逐个执行它们。
您可以决定是以特定的顺序还是并行(线程设计)运行这些插件。
请注意,如果您的插件必须访问特定的状态或API,您可以将其作为参数提供给您的插件。
所有这些都工作得很漂亮,我相信它可以很容易地适应几乎任何语言。
祝好运,
杰奇!
https://stackoverflow.com/questions/1564205
复制相似问题