应用程序设置存储

Application settings storage

本文关键字:存储 设置 应用程序      更新时间:2023-10-16

我有一个c++应用程序。我需要从文件中加载一些配置数据。

结构为:

Root(singleton) → ConfigManager(); LogManager(); ...;

所以所有的管理器都是在Roo’ts ctor中创建的,我可以使用方法Root::Get().GetSomeManager()获取指向它们的指针;

int main()
{
    // Here all managers are initialized
    Root::Get();
    // App cycle
    Root::Get().Deinitialize();
    return 0;
}

ConfigManager允许我通过传递的键从文件中加载值。

问题是:如何将文件中的值存储在某个全局额外文件中?

我用如下代码编写了文件Config.hpp

const int val = Root::Get().GetConfig()->GetValue("Key");

问题是,在初始化配置管理器之前,可能会包含此文件,或者不包含?

我知道这个代码很糟糕,但我不知道如何把它写得更好。

据我所知,您希望在应用程序启动时将配置设置存储在内存中,这样您就不需要在运行时访问配置文件。但是,既然已经有了这样的singleton,为什么还要决定使用全局变量呢?

我会将这些设置存储为ConfigManager的私有属性,并将其初始化为ConfigManager初始化的一部分。然后,当调用类似Root::Get().GetConfig()->GetValue("Key")的东西时,它会返回其中一个私有属性的值。