在我们的项目中,我们有一个使用外部配置文件(比如 server.xml)的应用程序。现在我们需要在 C++/QT 中设计一个设置工具 GUI 来读取/编辑此类配置文件,它应该能够处理此类文件的所有不同版本。用户将选择文件版本,然后继续编辑。从一个版本到另一个版本并没有太大的变化,也许有一个新的 xml 标签,一个不同名称或不同位置的标签。
这样做的最佳设计方法是什么?我们正计划采用标准的 MVC 设计模式,但是如何处理所有不同的配置版本而无需再次重写相同的 GUI 代码?
这里是示例配置文件:
<?xml version="1.0" encoding="utf-8"?>
<Server_configuration ver="11">
<core>
<enable-tms>true</enable-tms>
<enable-gui-messages>true</enable-gui-messages>
<waiting-for-config-timeout>10000</waiting-for-config-timeout>
<remoting>
<port>50000</port>
<join-timeout>5000</join-timeout>
<ismultithread>true</ismultithread>
<maxconcurrentrequests>20</maxconcurrentrequests>
</remoting>
</core>
<content>
<ftp>
<ip>192.168.0.227</ip>
<port>21</port>
<userid>******</userid>
<passwd>******</passwd>
</ftp>
<library>
<ip>192.168.0.227</ip>
<port>50023</port>
</library>
<local>
<asset-root>/assetroot</asset-root>
<kdm-expiration-warning>172800000</kdm-expiration-warning>
</local>
<hula-store-daemon>
<ip>127.0.0.1</ip>
<port>5567</port>
</hula-store-daemon>
</content>
</Server_configuration>