实现模块化架构/简单插件系统

时间:2012-09-02 20:58:19

标签: java plugins architecture

我编写了一个简单的程序,从XML文件中获取一些命令,执行它,检查命令错误,通过邮件报告等。命令的条目如下所示。像这样:

<command>C:\Program Files\Test\test.exe /xyz</command>

现在我想介绍一些插件:

<command myPlugin1="abc,1" myPlugin2="def">C:\Program Files\Test\test.exe /xyz</command>

我考虑过将插件编写为实现某些接口的Java类或者为某些插件类创建子类,然后使用类似

的方法
pluginExec(List<String> parameters, String command)

传递参数(例如abc,1)和命令(C:\ Program Files \ Test \ test.exe / xyz)。 然后可以获取命令标记的所有属性名称,即myPlugin1和myPlugin2,然后搜索与myapp.plugins名称空间上的属性同名的类,并调用pluginExec(...)。

对此更好的想法?我想我的想法需要某种反思,有没有办法呢?该应用程序是一个私有工具,无需重新编译软件就无需添加插件。我只是不想每次都更改代码,我只想插入我的新插件类。

1 个答案:

答案 0 :(得分:1)

如果您开发的基于插件的程序在未来不会增长很多,那么您的设计就可以了。

但是,如果您希望它增长并且您希望添加多个功能,那么我建议您尝试像OSGi这样的Java标准。