我被要求为现有的用 Java 编写的 shell/cmdline 程序编写 GUI,我想在 GUI 和原始程序之间创建一个抽象层,以便轻松添加不同的 GUI(Web 界面,例如,而不是桌面应用程序)。目前,程序的结构如下:
命令行选项会立即转换为 Java 哈希表(采用诸如-f opt
哈希之类的选项"-f=>opt"
。这些选项然后用于设置environment
程序使用的对象。
我想到的结构是:
沿着实线,这意味着 GUI 生成一个 XML 文件,其中包含与 shell/cmdline 选项相同的信息,然后用于设置environment
选项。
问题是,我不太确定这是否是工作的最佳方式(虚线表示替代结构),我也不知道 XML 是否是正确的选择。
就目前而言,从 设置environment
对象的程序部分与使用获取结果options
的部分位于相同的方法中。environment
因此,实现将 shell/cmdline 参数直接馈送到程序中的东西比实现将信息作为 XML 文件传递的结构更容易。我当然不想创建 XML 文件,然后将其转换为 shell 选项并将其传输到程序,但 GUI 自己生成 shell 选项而不是创建 XML 可能更有意义。
据我所知,使用 XML 文件的主要优点是它使未来的开发人员的工作更容易,因为他们可以使用现有的库来创建 XML 文件,而不必担心-a opt1 -b opt2 -c opt3 [...]
语法是否正确。
另一方面,我听说不要轻易尝试创建自己的 XML 语言(尽管据我所知,该程序将数据存储在没有 DTD 甚至没有模式的 XML 文件中)。
我的方法或多或少是正确的吗?或者我是否使用了完全不合适的工具来完成我正在尝试做的工作?