配置应用程序体系结构 我有一个C++应用程序,已经写了很多年了。有很多课

配置应用程序体系结构 我有一个C++应用程序,已经写了很多年了。有很多课,c++,xml,C++,Xml,每次我们想要更改一些参数值时,我们都需要在代码中手动更新它们并重新编译。随着用户需求的不断增长,使用起来并不方便。我们希望将类的值配置在应用程序外部。也许,从xml格式读取是最好的?对于每个用户,我们可以创建一个xml配置设置,并将其与应用程序一起发送。这是一个好方法吗 对于每个类,例如:class classA,我们是否应该创建另一个名为:ConfigClassA的类,然后classA将使用ConfigClassA中的配置设置?我们不想在当前的实现中做太多的更改 假设存在xml文件的结构: &

每次我们想要更改一些参数值时,我们都需要在代码中手动更新它们并重新编译。随着用户需求的不断增长,使用起来并不方便。我们希望将类的值配置在应用程序外部。也许,从xml格式读取是最好的?对于每个用户,我们可以创建一个xml配置设置,并将其与应用程序一起发送。这是一个好方法吗

对于每个类,例如:class classA,我们是否应该创建另一个名为:ConfigClassA的类,然后classA将使用ConfigClassA中的配置设置?我们不想在当前的实现中做太多的更改

假设存在xml文件的结构:

<classes>
   <class name="ClassA">
      <variable id="isUp" value="true" />
   </class>
</classes>

在Xml中,我们可以获取部分classA并将其解析为ConfigClassA,然后classA有一个ConfigClass实例

或者有谁有更好的方法


提前感谢。

使用JSON或YAML将比XML更轻量级,因为配置文件的解析器将更简单。无论如何,XML也是可行的。

拥有配置文件实际上是很常见的。它们的存储格式并不重要。它们通常只在程序开始时加载一次,而不是每次方法请求某个内容时都进行查询


此外,您应该提供一个工具来编辑这些文件(例如“首选项…”面板)。

一般来说,我认为在启动应用程序时应加载整个配置,以便在配置无效时立即通知用户。为了验证XML文件,可以使用


但是,如果你不想在当前的实现中做很多改变,你的想法可能是一个有效的解决方案。

不知道你的目标平台和这个“类”代表什么,很难给你一个准确的建议。它是Windows平台,应用程序是在Visual Studio 2010上用C++编写的。这是一种面向对象的风格,所以我指的是:classes并不是说答案是错误的,但我相信OP更关心的是全局代码设计,而不是用于存储/读取配置值的有效技术。