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



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

<command>C:Program FilesTesttest.exe /xyz</command>

现在我想介绍一些插件:

<command myPlugin1="abc,1" myPlugin2="def">C:Program FilesTesttest.exe /xyz</command>

我想把插件写成一个Java类,实现一些接口或子类化一些插件类,然后用这样的方法

pluginExec(List<String> parameters, String command)

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

对此有什么更好的想法吗?我想就我的想法而言,我需要一些反思,有没有办法不这样做?该应用程序是一个私人工具,不需要在不重新编译软件的情况下添加插件。我只是不想每次都更改代码,我只想插入我的新插件类。

如果你开发的基于插件的程序在未来不会有很大的增长,那么你的设计就很好。

然而,如果您希望它增长,并且希望为它添加多个功能,那么我建议您尝试OSGi等Java标准。

最新更新