2012-09-02 101 views
0

我编写了一个简单的程序,从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.EXE/XYZ)。 然后可能采用命令标签的所有属性名称,因此myPlugin1和myPlugin2,然后搜索与myapp.plugins命名空间上的属性具有相同名称的类并调用pluginExec(...)。

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

回答

1

如果您开发的基于插件的程序在未来将不会增长很多,那么您的设计就很好。然而,如果你期望它增长,并且你希望为它增加多个功能,那么我建议你尝试Java标准,比如OSGi。